我刚刚开始开发Android应用程序,我从一开始就想知道这个问题。 显然,如果你使用API 13(3.2)并不重要,你仍然可以支持Android 1.6。真的吗?
要让AdMob工作,我必须开始使用API 13并设置
target=android-13
有人请澄清这一点或指点我阅读它。
答案 0 :(得分:3)
显然,如果您使用API 13(3.2)并不重要,您仍然可以支持Android 1.6。这是真的吗?
这取决于您的意思"使用API 13"。
如您在问题中稍后提到的那样,拥有API级别13的构建目标,只是意味着您正在编译的Android SDK的版本。您将能够引用API级别13(及更早版本)上存在的类和方法。您的应用仍然可以在您想要的任何Android版本上运行。
然而:
当您未在API Level 13设备上运行时,您无法调用API Level 13中不存在的方法(同样适用于API级别12,11,10等)。
< / LI>如果您希望支持Android 1.x,则甚至无法从VM加载的类中引用设备上不存在的类或方法。
在其中任何一种情况下,您都会得到一个VerifyError
,而您的应用将会进入&#34;繁荣&#34;。
有条件使用新API的策略,可以避免尝试在旧的API设备上使用这些东西。或者,一开始就坚持使用旧的API,即使你没有获得编译器帮助,也可以在你意外使用更新的API时告诉你,因为你正在使用更新的构建目标。 / p>
或者,联系AdMob支持并找出他们为什么需要该构建目标。
答案 1 :(得分:1)
在你的清单文件中你可以把你想要支持的最小sdk版本和你的目标sdk版本,它们可以不同,支持1.6指定android:minSdkVersion =“4”如下
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="13" />