Установить место установки для Android 1.6? - PullRequest
4 голосов
/ 22 июля 2010

Я пишу приложение, совместимое с Android 1.6, но я бы хотел предоставить пользователям, работающим под Android 2.2, возможность перенести установку приложения на свою SD-карту.

Как я могу скомпилировать свое приложение для 1.6, но все же позволить пользователям 2.2 установить его на свой sd?

Ответы [ 2 ]

12 голосов
/ 22 июля 2010

В вашем манифесте:

  • В <manifest> добавить «android:installLocation="preferExternal»
  • Сохраните свой текущий uses-sdk как "<uses-sdk android:minSdkVersion="4">"

Затем перейдите в Project> Properties> Android (слева), измените цель сборки на 2.2, и все готово.

Ваш проект будет собираться с использованием 2.2 (но все еще требует только 1.6), но устройства под управлением 1.6 будут просто игнорировать ваш новый параметр "installLocation" в манифесте. Только будьте осторожны, чтобы не добавлять материал 2.2 в ваш реальный код, так как компилятор его больше не поймает.

0 голосов
/ 27 ноября 2010

Это не так гладко, как предполагает руководство разработчика.Во-первых, приложение не собирается, когда в манифесте присутствует installLocation, а для цели сборки задано значение, отличное от 2.2:

error: No resource identifier found for attribute 'installLocation' in 
package 'android'

Итак, для проверки обратной совместимости путем установки цели сборки на1.6, манифест должен быть также отредактирован.

Во-вторых, когда цель сборки установлена ​​на 2.2, я не могу выбрать эмулятор с более низким уровнем API для тестирования.Я все еще могу вручную запустить эмулятор 1.6 и запустить приложение на нем, но мне любопытно, появится ли мое приложение на Android Market для устройств 1.6, если моя цель сборки - 2.2 (хотя minSdkVersion = 4).У меня нет реального устройства для тестирования.Кто-то может подтвердить, что это не влияет на доступность на рынке?

Наконец, это предупреждение остается:

Attribute minSdkVersion (4) is lower than the project target API level (8)
...