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中的项目目标指向它。
答案 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:minSdkVersion
和targetSdkVersion
值相同的内容。
警告,如果您未将targetSdkVersion
设置为API 12或更低(或根本不设置),Android系统将假设{{ 1}}值android:configChanges
和screenSize
(在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之前,您的新应用不会再收到任何广告展示。