来自 Admob 的 Android 清单错误
Posted
技术标签:
【中文标题】来自 Admob 的 Android 清单错误【英文标题】:Android Manifest Error from Admob 【发布时间】:2012-01-24 19:43:19 【问题描述】:我正在尝试集成 AdMob,但我不得不将此行添加到我的清单中,并且一直收到此错误。这是此链接中的示例http://code.google.com/mobile/ads/docs/android/fundamentals.html
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
错误:错误:不允许使用字符串类型(在 'configChanges' 处有值 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize')。
【问题讨论】:
【参考方案1】:您必须针对 API 13 (Android 3.2) 进行构建。您将在 Manifest 中保留 android:minSdkVersion
相同的内容,但您必须针对 3.2 进行构建。
在 Eclipse(我假设?)中,右键单击项目 > 属性 > Android(在左侧)> 然后选择 3.2 并单击“确定”。
这不会导致问题 - 您的应用仍可在旧设备上正常运行。但请务必小心,确保不要为旧设备使用新代码。
为了让这件事变得简单,我通常会在导出到发布之前将目标切换回我的最小值,确保没有编译错误,然后我将其切换回 3.2 - 只是一个提示。
【讨论】:
对不起什么!?谢谢你的回复,这让我很意外。目前我的目标是1.6。这是eclipse中的错误吗? 这不是 Eclipse 或任何东西的错误,就此而言。configChanges
内部的一些属性是在 3.2 中引入的。而且您无法将它们从 configChanges
中删除,因为那样您的广告将不会展示。
旧设备将忽略任何他们无法识别的configChanges
,但这是一个编译错误。【参考方案2】:
我在清单中使用以下内容。目标 Android SDK 是版本 8。使用 AdMob SDK 4.1.1。
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboardHidden|orientation|keyboard"/>
【讨论】:
这意味着您的 Admob SDK 可能已经过时了。 code.google.com/mobile/ads/docs/android/fundamentals.html 的当前文档说“[确保]您至少针对 Android v3.2 进行编译(将 default.properties 中的目标设置为 android-13)。” 是的。当前版本是 4.3.1。但我很确定您可以通过排除不受支持的选项来使其工作。 我尝试在我的应用程序中这样做,然后当我在我的测试设备上运行它而不是显示广告时,它给了我一条消息,说明我需要和没有的清单选项。 No Frohnzie,它不起作用,最新的 SDK 抛出异常。【参考方案3】:在这里玩过之后,我发现正确的组合显然 adMob 需要一些设置。我正在使用 3.2 SDK 进行构建,但我已经对此进行了测试,它在 2.3.3 上运行,仅供参考。
AndroidManifest.xml
<uses-sdk
android:minSdkVersion="10"
android:maxSdkVersion="16"
android:targetSdkVersion="13"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
那我的default.properties一定有
target=android-10
project.properties 也必须有
target=android-13
然后将您的<com.google.ads.AdView .../>
添加到您的 XML 布局中或从代码中调用它,您应该可以开始工作了。
【讨论】:
【参考方案4】:您可以忽略最新的更改,而使用旧的更改
configChanges="keyboard|keyboardHidden|orientation"
【讨论】:
以上是关于来自 Admob 的 Android 清单错误的主要内容,如果未能解决你的问题,请参考以下文章
Android和AdMob:何时调用AdView.loadAd