为什么我无法在 Manifest 文件中使用属性 installLocation?

发布于 2024-12-01 01:58:52 字数 1135 浏览 1 评论 0原文

只是一个简单的 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"/>

没有解决问题后执行了此操作,有什么想法吗

Just a simple XMl file

<?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>

Yet, I receive an error

"No resource identifier found for attribute 'installLocation' in
package 'android'"

Why is this happening?

EDIT

It seems that this is an issue with IntelliJ. At least mine. This is the screen of Project Structure. I clicked Android 2.3.3 SDK and changed its build target. I did this after the attribute

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8"/>

did not do the trick. Any ideas?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小瓶盖 2024-12-08 01:58:53

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

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

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

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

在此处输入图像描述

You must specify the android:minSdkVersion and android:targetSdkVersion and compile your APK using, at least, API 8. For instance:

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

This will compile the APK using API 8. Handsets running Froyo or above, will be able to use that feature. Eclair and older versions won't (in this case, only Eclair).

The error happens because you are trying to compile the project with an API 7 or older, and installLocation was added on API 8.

enter image description here

挽梦忆笙歌 2024-12-08 01:58:53

简短回答:将您的构建目标设置为 API 级别 >= 8,您的问题就解决了。

更改构建目标很简单

在 Package Explorer 中右键单击该项目,选择“属性”,选择“Android”,然后选中所需的“项目目标”。

说明:

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

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

Short answer: set your build target to an API level >= 8 and your problem is solved.

Changing the build target is easy:

Right-click the project in the Package Explorer, select Properties, select Android and then check the desired Project Target.

Explanation:

The android:installLocation attribute is available since API level 8, so you'll need to make sure your build target is set to API level 8 or higher, else it will not compile your application.

android:minSdkVersion can be less than 8 and your application will still work on older devices, but devices with API level < 8 will simply ignore the attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文