为什么我不能在清单文件中使用属性installLocation?

时间:2011-08-22 13:35:54

标签: android intellij-idea android-manifest android-sdcard

只是一个简单的XMl文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example"
      android:versionCode="1"
      android:versionName="1.0"
      android:installLocation="auto"
        >
    <application android:label="@string/app_name">
        <activity android:name=".MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

然而,我收到错误

  

“找不到属性'installLocation'的资源标识符   包'android'“

为什么会这样?

编辑

这似乎是IntelliJ的一个问题。至少是我的。这是项目结构的屏幕。我点击了Android 2.3.3 SDK并更改了其构建目标。我在属性

之后做了这个
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8"/>

没有做到这一点。有任何想法吗?

enter image description here

2 个答案:

答案 0 :(得分:6)

您必须指定android:minSdkVersionandroid:targetSdkVersion并使用至少API 8编译您的APK。例如:

....
   <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="8" />
</manifest>

这将使用API​​编译APK。运行Froyo或更高版本的手机将能够使用该功能。 Eclair和旧版本不会(在这种情况下,只有Eclair)。

发生错误的原因是您尝试使用API​​ 7或更早版本编译项目,并在API 8上添加了installLocation

enter image description here

答案 1 :(得分:2)

简答:将您的构建目标设置为API级别&gt; = 8并解决您的问题。

更改构建目标is easy

  

在Package Explorer中右键单击项目,选择Properties,选择Android,然后检查所需的Project Target。

<强>解释

自{8}级以来android:installLocation属性可用,因此您需要确保您的构建目标设置为API级别8或更高级别,否则它将无法编译您的应用程序。

android:minSdkVersion可以小于8,你的应用程序仍可以在较旧的设备上运行,但API级别&lt; 8将简单地忽略该属性。