转向SD兼容性

时间:2011-08-31 15:57:02

标签: java android xml

我有一个Android 2.1的应用程序,我想为Android 2.2 +的设备添加move-to-sd支持。

我添加了该代码:

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.example2"
android:versionName="1.0"
android:versionCode="1"
android:installLocation="auto">
<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="8" />

但是,如果我将我的项目保持在sdk级别7.我有编译错误

error: No resource identifier found for attribute 'installLocation' in package 'android'    AndroidManifest.xml /example2   line 2  Android AAPT Problem

如果我把它设置为8级,那么以后在编程时我可能会介绍一些仅适用于sdk 8+级别的代码并且不会检测到它。

有没有办法解决这个问题?感谢

2 个答案:

答案 0 :(得分:2)

如果您正在使用Eclipse,那么您应该能够通过Eclipse UI设置目标SDK版本,它将识别installLocation属性。

项目&gt;属性&gt; Android&gt;项目构建目标

至于引入仅在api 8级以上工作但设置较低的最小SDK值的代码,我在网上阅读的所有内容都只表示没有办法自动保护自己所以此时你只需要更多用你的代码保守和谨慎。您需要知道哪个代码需要api级别大于应用程序的最小值,并对Build.VERSION_CODES枚举使用Build.VERSION.SDK_INT来检查是否可以运行该代码并提供可选方法,如果没有。

答案 1 :(得分:0)

<强> - 编辑 -

Android 2.1不允许将应用安装到SD卡。对于API,人们必须针对较新的版本,但由于清单中有一个属性被2.2及更高版本识别,并被2.1和之前版本忽略,因此可以通过该属性处理此问题。 (请在这个问题上阅读评论。之前我错了。)