来自 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

然后将您的&lt;com.google.ads.AdView .../&gt; 添加到您的 XML 布局中或从代码中调用它,您应该可以开始工作了。

【讨论】:

【参考方案4】:

您可以忽略最新的更改,而使用旧的更改

configChanges="keyboard|keyboardHidden|orientation"

【讨论】:

以上是关于来自 Admob 的 Android 清单错误的主要内容,如果未能解决你的问题,请参考以下文章

Google Admob移动广告快速集成步骤

来自统一问题的 xcode Admob

无法使用 adMob 在 android 上显示广告

Android和AdMob:何时调用AdView.loadAd

来自 AdMob 的 iOS 应用错误 = com.google.DummyAdapter?

RecycleViewerAdapter 未完美显示 admob 插页式广告