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:minSdkVersion
和targetSdkVersion
值。
不过要注意的是 ,如果你没有将targetSdkVersion
设置为API 12或者更低(或者根本不设置),Android系统会认为android:configChanges
screenSize
和smallestScreenSize
(在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之前,您的新应用将不会收到任何广告展示。