Eclipse中的Admob错误:android:configChanges

时间:2011-10-26 07:21:54

标签: android eclipse admob

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 )文件更改为:< / p>

# Project target.
target=android-14

以及安装了 SDK平台Android 4.0 - 修订版14 SDK Manager

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

7 个答案:

答案 0 :(得分:86)

简单解决方案:(并且您不需要更改min-sdk值!!)

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

# Project target.
target=android-13

第2步: 在Eclipse中

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

有关真实示例的完整说明,请使用本教程http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

干杯!

答案 1 :(得分:74)

简单回答:Android 2.1中不支持上述配置更改,请看这里:

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

e.g。 uiMode需要API级别8。

来自官方AdMob文档:

<强>要求

适用于Android的Google AdMob Ads SDK需要Android 1.5或更高版本。 确保您拥有Android SDK的最新副本,并且至少要针对Android v3.2进行编译(将default.properties中的目标设置为android-13)。

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

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

答案 2 :(得分:18)

对于那些使用Eclipse的人来说,有一种更简单的方法: 右键单击左侧“包资源管理器”窗格中的项目文件夹,然后单击属性 - &gt; Android - &gt;并在“项目构建目标”列表中选中API 13或更高版本。

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

这将根据Android 3.2 SDK构建您的项目,其中包含以前无法识别的术语。

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

警告,如果您未将targetSdkVersion设置为API 12或更低(或根本不设置),Android系统将假设{{ 1}}值android:configChangesscreenSize(在API 13中引入)被计算在内,因此将允许销毁 - 重新启动您的活动。如果您想避免这种情况,则必须在其他smallestScreenSize代码中包含这些字词(到目前为止可能只有<activity>)。

  

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

引用来自here

答案 3 :(得分:3)

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

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

它有效!

答案 4 :(得分:0)

你使用过吗? android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

还是更短?如果你将你的目标改为13并且使用更长的configChanges(我写的),它应该可以工作。

答案 5 :(得分:0)

简易解决方案: 将“project.properties”文件更改为21

# Project target.
target=android-21

答案 6 :(得分:-4)

  

2011年10月14日之后创建的所有新Android应用都需要在2011年3月15日当天或之后发布的AdMob SDK。这相当于Android版本4.0.2+。如果您从我们的官方下载站点下载了该库,那么您已经设置好了。否则,您可能拥有2011年3月15日之前发布的旧版AdMob SDK,并且在您更新SDK之前,您的新应用不会再收到任何广告展示。