Построение комбинированного armv7/x86 apk после интеграции Crosswalk в проект Ionic
Я добавил Crosswalk в свой ионный проект. Когда я делаю ionic build android
, он выводит два отдельных файла APK, один для armv7 и один для x86.
Однако я хочу, чтобы один файл apk объединял две архитектуры вместе.
Я попытался установить BUILD_MULTIPLE_APKS = false
, но он все еще строит два отдельных apks.
Здесь есть сообщение говорящее:
Взял меня минутку, но вы можете получить один файл сборки, комментируя из строки cdvBuildMultipleApks = true в платформы /Android/ gradle.properties
Приветствия
Но у меня нет файла gradle.properties в моих платформах/android/папке, у меня есть файл project.properties, и в нем нет строки cdvBuildMultipleApks=true
для комментариев.
Я попытался вручную создать файл gradle.properties и поставить cdvBuildMultipleApks=false
там, но все еще два выхода.
Любые идеи, как достичь этого?
Обновление:
Версия My Cordova - 5.1.1
Решение:
Что для меня работало, как предложено @mudasserajaz и здесь, было:
- Создайте файл с именем
build-extras.gradle
внутри моего каталога /platform/android/
.
- поставьте
ext.cdvBuildMultipleApks=false
внутри него.
-
ionic build android --release
тогда и Voila, это сработало.
@mudasserajaz предложил ту же самую вещь, кроме имени переменной cdvBuildMultipleApks=false
, поэтому в случае, если она не сработает для вас, не забудьте ext
Ответы
Ответ 1
Вот шаги для этого:
- Сделайте файл
build-extras.gradle
и поместите его в platforms/android/
. Добавьте строку cdvBuildMultipleApks=false
в build-extras.gradle
.
- Теперь запустите
ionic run android', it will create combined single build
android-debug.apk`.
build.gradle
будет автоматически импортировать build-extras.gradle
, если это определено. Вы можете видеть код build.gradle
:
def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
apply from: 'build-extras.gradle'
}
Плюс эти инструкции четко указаны в строке build.gradle
57:
Свойства конфигурации. Установите их через переменные среды, build-extras.gradle или gradle.properties.
ПРИМЕЧАНИЕ.. Прежде чем выполнять следующие действия, удалите папку платформы и установите ее снова.
Наблюдения: После того, как вы сделали эти шаги, и снова в какой-то момент вы хотите сделать отдельные сборки, тогда установка cdvBuildMultipleApks=true
или комментирование иногда не будет работать, вам просто нужно будет установить платформу еще раз. (P.S это мое личное наблюдение, в противном случае удаление build-extras.gradle
должно быть достаточно.)
Ответ 2
Ну, я просто изменил свое config.xml
следующее свойство на false
и объединил сборку apk.
от
<preference name="xwalkMultipleApk" value="true"/>
к
<preference name="xwalkMultipleApk" value="false"/>
Мои системы ionic info
возвращают
Your system information:
Cordova CLI: 6.1.1
Gulp version: CLI version 3.9.1
Gulp local: Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS:
Node Version: v4.4.4
Ответ 3
Обязательно проверьте выходную папку.
Я заметил, что "сборка cordova" по-прежнему выводилась как arm7, так и x86 после добавления в мой build-extra.gradle, но выходная папка содержала "android-release.apk".
Удаление как arm7, так и x86 APK из выходной папки (project/platform/android/build/output/apk/)
он немедленно остановил их от показа "corodva build".
Надеюсь, что это поможет.