在我的Android应用程序中,我正在使用admob,我正准备集成最后一个admob sdk(GoogleAdMobAdsSdk-4.3.1)。将它添加到我的项目后,我遇到了一些运行时错误:
11-20 14:24:10.234: E/Ads(14268): The android:configChanges value of the com.google.ads.AdActivity must include keyboard.
11-20 14:24:10.234: E/Ads(14268): The android:configChanges value of the com.google.ads.AdActivity must include screenLayout.
11-20 14:24:10.234: E/Ads(14268): The android:configChanges value of the com.google.ads.AdActivity must include uiMode.
11-20 14:24:10.234: E/Ads(14268): The android:configChanges value of the com.google.ads.AdActivity must include screenSize.
11-20 14:24:10.234: E/Ads(14268): The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize.
11-20 14:24:10.234: E/Ads(14268): You must have AdActivity declared in AndroidManifest.xml with configChanges.
在广告横幅中:“您必须在AndroidManifest.xml中使用configChanges声明AdActivity。” 在搜索stackoverflow之后,我添加了上面的所有configChanges:
<activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
但现在我有以下错误:
Description Resource Path Location Type error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize'). AndroidManifest.xml line 22 Android AAPT Problem
现在要修复此问题,我必须设置项目构建目标Android 3.2(API级别13)或更高版本。
谁能告诉我这意味着什么?该应用程序是否适用于所有Android 2.1+?
请注意,在此之前,我的项目构建目标是Android 2.1,我的测试设备是Nexus S(2.3.6),即使将构建目标设置为3.2 +,应用程序也能正常运行。
提前致谢。
答案 0 :(得分:3)
即使你构建了3.2
,一切都会正常工作我所做的就是把它全部放在3.2上,然后当我完成编码并准备好测试时,我将其切换回我应用应该支持的最低级别,我检查出现的任何错误。 (清单中的那个不重要)。我这样做是因为当你希望它在2.1
上工作时很容易错过添加2.3代码答案 1 :(得分:2)
在定位后删除所有内容,解决问题
android:configChanges="keyboard|keyboardHidden|orientation"
答案 2 :(得分:0)
Google AdMob Ads SDK 4.3.1要求您针对Android 3.2或更高版本进行编译(这意味着您需要在project.properties
文件中指定android-13
或更高版本。你的应用程序仍可在2.1+设备上正常运行;您只需在清单中指定支持2.1。
<uses-sdk android:minSdkVersion="7"/>