Eclipse中的android:configChanges的Admob错误

在我的AndroidManifest.xml中,Eclipse给了我一个关于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那就没有错误,但是当我尝试构build时,编译器要求剩下的4个。

我正在使用GoogleAdMobAdsSDK-4.3.1

有任何想法吗?

编辑:我得到了它通过更改我的project.properties (SDK的低于14)的文件default.properties工作:

 # Project target. target=android-14 

并在我的SDK Manager中安装SDK平台Android 4.0 – 修订版本14

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

简单的回答:提到的configuration更改在Android 2.1中不支持,请看这里:

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

例如uiMode需要API Level 8。

从官方的AdMob文档:

要求

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

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

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

简单的解决scheme:(和NO,你不需要改变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

干杯!

对于那些使用Eclipse的人来说,有一个更简单的方法: 在左边的“包资源pipe理器”窗格中右键单击项目文件夹,然后单击属性 – > Android – >,然后在“项目生成目标”列表中选中API 13或更高版本。

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

这将构build您的项目对Android 3.2 SDK,其中包括以前无法识别的条款。

你可以在你的Manifest.xml中保留你的android:minSdkVersiontargetSdkVersion值。

不过要注意的是 ,如果你没有将targetSdkVersion设置为API 12或者更低(或者根本不设置),Android系统会认为android:configChanges screenSizesmallestScreenSize (在API 13中引入)是占了,因此将被允许摧毁 – 重新开始你的活动。 如果你想避免这种情况,你必须在你的其他<activity>标签中包含这些条款(直到现在可能只有keyboard|keyboardHidden|orientation )。

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

报价是从这里 。

我有同样的问题,所以我来到这里。
我从https://developers.google.com/admob/android/quick-start下载了示例代码,我仍然遇到了上述所有问题,所以我使用了相同的admob sdk,它们在示例项目中提供。 重做构buildjar的东西,改变目标到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之一(我写了),它应该工作。

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

 # Project target. target=android-21 

2011年10月14日之后创build的所有新的Android应用将需要在2011年3月15日或之后发布的AdMob SDK。这对应于Android 4.0.2及更高版本。 如果您从官方下载网站下载了该库,那么您已经设置好了。 否则,您可能拥有2011年3月15日之前发布的旧版AdMob SDK,在更新SDK之前,您的新应用将不会收到任何广告展示。