Почему я не могу использовать атрибут installLocation в файле Manifest? - PullRequest
3 голосов
/ 22 августа 2011

Просто простой файл 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 ]

6 голосов
/ 22 августа 2011

Вы должны указать android:minSdkVersion и android:targetSdkVersion и скомпилировать свой APK, используя, по крайней мере, API 8. Например:

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

Это скомпилирует APK с помощью API 8. Телефоны, работающие на Froyoили выше, сможет использовать эту функцию.Eclair и более старые версии не будут (в данном случае только Eclair).

Ошибка возникает из-за того, что вы пытаетесь скомпилировать проект с API 7 или более ранней версии, и installLocation был добавлен в API 8.

enter image description here

2 голосов
/ 22 августа 2011

Краткий ответ: установите цель сборки на уровень API> = 8, и ваша проблема будет решена.

Изменить цель сборки легко :

Щелкните правой кнопкой мыши проект в проводнике пакетов, выберите «Свойства», выберите «Android» и проверьте требуемую цель проекта.

Объяснение:

Атрибут android: installLocation доступен начиная с уровня API 8, поэтому вам нужно убедиться, что для вашей цели сборки задан уровень API 8 или выше, иначе он не скомпилирует ваше приложение.

android: minSdkVersion может быть меньше 8, и ваше приложение будет по-прежнему работать на старых устройствах, но устройства с уровнем API <8 будут просто игнорировать атрибут. </p>

...