在 Eclipse 中用于 android 的 Admob 错误: configChanges

Eclipse 在我的 AndroidManifest.xml 中的 android: configChanges 行给出了一个错误:

<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

错误是:

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

如果我只留下 keyboard|keyboardHidden|orientation没有错误,但编译器要求4个剩余的当我尝试和构建。

我用的是 GoogleAdMobAdsSDK-4.3.1

有什么想法吗?

编辑: 我通过将我的 Project.properties(在 SDK 低于14的 Default.properties)文件改为:

# Project target.
target=android-14

在我的 SDK 管理器中安装了 SDK 平台 Android 4.0-版本14

它也应该适用于 SDK 平台 android 3.2-版本13,所以如果是这种情况,只需将 project.properties 目标更改为 机器人 -13即可。基本上,您只需要确保 SDK 修订版是13或更高版本,并且您已经将该 SDK 安装在 SDK 管理器中,并且在 default/project.properties 中将项目目标指向它。

68497 次浏览

答案很简单: Android 2.1不支持上面提到的配置更改,看看这里:

Http://developer.android.com/guide/topics/manifest/activity-element.html#config

例如,uiMode 需要 API 级别8。

来自 AdMob 官方文档:

规定

Google AdMob Adds SDK for Android 需要 Android 1.5或更高版本. 确保您拥有 Android SDK 的最新副本,并且您正在至少针对 Android v3.2进行编译(在 default.properties 中将 target 设置为 Android-13)。

看看这里: https://developers.google.com/admob/android/quick-start

所以我认为你的工具版本至少没有更新到13版。

所有在2011年10月14日之后创建的新 Android 应用程序都需要在2011年3月15日或之后发布的 AdMob SDK。这对应于 Android 版本4.0.2 + 。如果您从我们的官方下载站点下载了库,那么您已经设置好了。否则,你可能会有一个旧版本的 AdMob SDK 发布之前,2011年3月15日,你的新应用程序将不会收到任何广告印象,直到你更新你的 SDK。

简单的解决方案: (不,你不需要改变 min-sdk 值! !)

第一步: 更改“ project.properties”文件

# Project target.
target=android-13

第二步: 在 Eclipse

Project > Clean... > (select your project) > Clean projects selected below > OK

要获得完整的解释和实例,请使用本教程 http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

干杯!

对于那些使用 Eclipse 的用户来说,有一个更简单的方法: 右键单击左侧“ Package Explorer”窗格中的项目文件夹,然后单击 Properties-> Android-> ,在“ Project Build Target”列表中勾选 API 13或更高版本。

注意: 这与编辑 project.properties是自动生成的效果相同。

这将根据 Android 3.2 SDK 构建您的项目,其中包括以前未被认可的术语。

您可以在 Manifest.xml 中保留相同的 android:minSdkVersiontargetSdkVersion值。

要注意的是,如果你没有把你的 targetSdkVersion设置为 API 12或者更低(或者根本没有设置) ,Android 系统会假设 android:configChangesscreenSizesmallestScreenSize(在 API 13中引入的)被计算在内,因此允许销毁-重新启动你的活动。如果你想避免这一点,你必须包括在你的其他 <activity>标签(可能只有 keyboard|keyboardHidden|orientation到现在)这些术语。

但是,如果您的应用程序的目标是 API 级别12或更低,那么您的活动总是自己处理这种配置更改(这种配置更改不会重新启动您的活动,即使在 Android 3.2或更高设备上运行)。

报价来自 给你

我也有同样的问题,所以我来了这里。
我已经从 https://developers.google.com/admob/android/quick-start下载了样本代码,我仍然有问题与所有的答案以上,所以我使用相同的 admob sdk,他们在样本项目中提供。重做构建罐子的事情,将目标改为 android-15,并使用他们使用的同一行:

<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation"/>

成功了!

你是不是用了 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

还是短一点的?如果您将目标更改为13以上,并使用更长的 configChanges one (这是我编写的) ,那么它应该可以工作。

简单的解决办法: 将“ project.properties”文件更改为21

# Project target.
target=android-21