Подтвердить что ты не робот

Как вы создаете и развертываете более старую версию Android для ионной/кордовой

Использование Ionic 1.0.0 beta-8

После создания нового приложения я построил и развернул его в эмулятор Nexus 5, и он работал нормально. Но когда я попытался отладить его на своем Android 2.2, я получил эту ошибку:

....
-post-build:
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/ant-build
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/CordovaLib/ant-build

debug:

BUILD SUCCESSFUL
Total time: 6 seconds
WARNING : No target specified, deploying to device 'I8972b56ddac'.
Using apk: /home/admin/code/projects/myapp/ionic/platforms/android/ant-build/HelloCordova-debug-unaligned.apk
Installing app on device...

/home/admin/code/projects/myapp/ionic/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
ERROR: Failed to launch application on device: ERROR: Failed to install apk to device:  pkg: /data/local/tmp/HelloCordova-debug-unaligned.apk
Failure [INSTALL_FAILED_OLDER_SDK]

Error: /home/admin/code/projects/myapp/ionic/platforms/android/cordova/run: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Process.ChildProcess._handle.onexit (child_process.js:822:5)
ERROR: Unable to run app on platform android. Please see console for more info.
Exiting.

Как мне сделать работу по сборке в ionic/cordova для телефонов android 4.x.x, а также телефонов Android 2.2?

4b9b3361

Ответ 1

этот вопрос похож на ваш. fooobar.com/questions/228893/...

перейдите в свой AndroidManifest.xml, найдите их, чтобы контролировать свою sdk buildversion.

<preference name="android-minSdkVersion" value="XX"> // value is the API LEVEL
<preference name="android-targetSdkVersion" value="XX">

* targetSdk = сообщить телефонную книгу, какую версию для Android использовать,
* MinSdk - это ограничение пользователя, который хочет его загрузить.
проверьте API LEVEL для android build здесь.

В вашем случае: для Android 2.2, используйте value = 8 (уровень API 8)

    <preference name="android-minSdkVersion" value="8"> //android 2.2
    <preference name="android-targetSdkVersion" value="17"> //android 4.2

ПРИМЕЧАНИЕ. Я сомневаюсь, что Android 2.2 (уровень API 8) может запустить API-уровень 17 (android 4.2).

Ответ 2

В соответствии с Примечания Ionic Platform, Ionic нацеливает iPhone и устройства Android (в настоящее время). Он также поддерживает iOS 6+ и Android 4.0+ (хотя 2.3 должен работать). Однако, поскольку существует множество различных устройств Android, возможно, некоторые из них могут не работать. Ionic не гарантировал Android 2.3, поэтому Android 2.2 будет недоступен.

Следовательно, я думаю, что именно поэтому у вас возникают проблемы.

Ответ 3

FYI, встроенные функции Google из Honeycomb и снова из более поздних версий Android в "совместимую" библиотеку. Возможно, вы сможете установить это и заставить приложение работать с более старыми версиями Android. Вам нужно будет обновить Android SDK и установить эту библиотеку.

Смотрите Android Support Library docs.

Если вы используете Ionic, вы можете добавить hook script, который копирует библиотеку в ваш проект, когда вы добавляете Android в качестве платформы или начинаете сборку.

Ответ 4

Измените значение "android-minSdkVersion" в config.xml вашего ионного проекта. Он должен выглядеть следующим образом:

<preference name="android-minSdkVersion" value="14"/>

Ответ 5

Похоже, что cdvCompileSdkVersion используется для определения сборки SDK и NOT targetSdkVersion, как это можно было бы использовать в собственных приложениях для Android.