我正在使用facebook sdk为Android 2.2+制作应用程序。我的应用程序工作正常,所以在把它推向市场之前,我决定用admob放一些广告。要使用以前版本的admob,你必须使用adnroid 32+进行编译,以便我做了什么(我使用了api 15)。在android 2.2-3.2我的应用程序也可以工作和使用,但是在ICS中(我在Android 4.0.4的nexus上测试它)admob没有显示任何广告,一些facebook请求给出了null结果并且一些图片下载会给出错误(我说"一些"因为其他请求和其他图片下载工作......)。 我将在此处发布清单的相关部分以及其他两个错误。如果删除广告并将我的应用程序编译为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());
如果有人能帮助我,我真的很感激!谢谢
答案 0 :(得分:1)
冰淇淋三明治(如果我没记错的话,甚至是Honeycomb)也不允许你在主线程上执行网络操作。
在Thread
对象中执行您的admob请求。
(new Thread() {
public void run() {
//Admob stuff
}
}).start();
这是为了确保您不会在长时间的网络操作中找到您的应用程序。