1

我也在使用 facebook sdk 为 android 2.2+ 制作应用程序。我的应用程序运行良好,因此在将其投放市场之前,我决定使用 admob 投放一些广告。要将 admob 与以前的版本一起使用,您必须使用 adnroid 32+ 进行编译,这就是我所做的(我使用了 api 15)。在 android 2.2-3.2 我的应用程序和 admob 也可以工作,但是在 ICS 中(我正在与 android 4.0.4 的关系上对其进行测试)admob 不显示任何广告,一些 facebook 请求返回一个空结果和一些下载图片给出错误(我说“一些”,因为其他请求和其他图片下载工作..)。我将在这里发布我的清单的相关部分和其他两个错误。如果删除广告并将我的应用程序编译到 2.2,它会再次开始正常工作......

在我的 project.properties 中:

# Project target.
target=android-15

我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
package="com.***.***"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8"
          android:targetSdkVersion="15" 

   />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 <application
    android:icon="@drawable/icon_transparent_zk"
    android:label="***" >
<activity
        android:name="com.google.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

这是对 facebook 的请求(我需要它来获取用户 ID):

String result_me = mFacebook.request("me");

现在是图像,我可以向您保证 json 中包含的 url 是正确的:

URL img_value = new URL(json.getString("pic"));
Bitmap icon = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());

如果有人可以帮助我,我将不胜感激!谢谢你

4

1 回答 1

1

冰淇淋三明治(如果我没记错的话,甚至是 Honeycomb)不允许您在主线程上执行网络操作。

Thread在对象中执行您的 admob 请求。

(new Thread() {
    public void run() {
        //Admob stuff
    }
}).start();

这是为了确保您不会在长时间的网络操作中 ANR 您的应用程序。

于 2012-06-14T21:01:53.237 回答