我正在编写与Android 1.6兼容的应用程序,但我想让运行Android 2.2的用户将应用程序安装移动到他们的SD卡上。为Android 1.6设置安装位置?
如何编译我的应用程序1.6,但仍然允许2.2用户将其安装到他们的SD?
我正在编写与Android 1.6兼容的应用程序,但我想让运行Android 2.2的用户将应用程序安装移动到他们的SD卡上。为Android 1.6设置安装位置?
如何编译我的应用程序1.6,但仍然允许2.2用户将其安装到他们的SD?
在您的清单:
<manifest>
,加上 “android:installLocation="preferExternal
”uses-sdk
为 “<uses-sdk android:minSdkVersion="4">
”然后去项目>属性>安卓(左),将构建目标更改为2.2,然后全部设置。
您的项目将使用2.2(但仍然只需要1.6)构建,但运行1.6的设备将简单地忽略清单中新的“installLocation”设置。只要注意不要在实际代码中添加任何2.2引入的材料,因为编译器将不再捕获它。
这并不像开发者指南所建议的那样无缝。 首先,应用程序时的installLocation出现在清单和构建目标被设定为以外的任何其他2.2不建:
所以为了通过构建目标设定为1.6,以测试向后compatibililty ,清单也必须进行编辑。其次,一旦构建目标设置为2.2,我就不会选择具有较低API级别的模拟器进行测试。不过,我仍然可以手动启动1.6模拟器并在其上运行应用程序,但是如果我的构建目标为2.2(即使minSdkVersion = 4),我的应用程序将出现在Android Market for 1.6设备上,但我很好奇。我没有实际的设备来测试。有人可以证实这不会影响市场上的可用性吗?
最后,此警告仍然是:
Attribute minSdkVersion (4) is lower than the project target API level (8)
我可以证实,市场上的可用性不受影响。我使用官方Android开发者页面描述的方法。我的应用的市场要求显示为“Android 1.6或更高版本”。使用运行Android 1.6的HTC Magic,我可以毫无问题地从市场中发现,下载和运行应用程序。 – Philipp 2011-07-12 14:29:46
好吧。有种痛苦,但我想它必须要做。 – GuyNoir 2010-07-22 21:26:00
您可以在此处找到更多信息:http://developer.android.com/guide/appendix/install-location.html在“向后兼容性”下 – 2010-07-22 21:31:51
一个建议:在推出新版本之前,将构建目标版本设置回到1.6并做一个干净的构建。如果你遇到任何编译错误,你就知道你不小心引入了2.2特有的功能,而你的应用程序将会在1.6下崩溃。如果一切正常,请切换回2.2。 – EboMike 2010-10-25 02:52:49