Создайте файл Apk из aab файла (пакет приложений для Android)

Есть ли способ генерировать apk файл из приложения Android-приложения через терминал или с помощью студии Android?

Ответ 1

По умолчанию в среде IDE не используются пакеты приложений для развертывания вашего приложения на локальном устройстве для тестирования

См. Команду bundletool

Для команды Debug apk,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Для команды Release apk,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd

Ответ 2

Хорошо, вот полный путь, который я должен был сделать

1.Загрузите bundletool-all-0.6.0.jar по этой ссылке, скачайте последнюю доступную версию

2. Создайте пакет приложений с помощью Android Studio и найдите его путь

в моем случае это E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab

3. Скопируйте банку bundletools в какое-то место и найдите его путь.

в моем случае это E:\Temp\bundletool-all-0.6.0.jar

используйте эту команду

java -jar "BUNDLE_TOOL_JAR_PATH" build-apks --bundle="BUNDLE_PATH" --output=YOUR_OUTPUT_NAME.apks

В моем случае это будет

java -jar "E:\Temp\bundletool-all-0.6.0.jar" build-apks --bundle="E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab" --output=out_bundle_archive_set.apks

4.Это создаст файл out_bundle_archive_set.apks, переименует его в .zip out_bundle_archive_set.zip, out_bundle_archive_set.zip этот файл и все готово. У вас будет несколько apks

Проверьте это сообщение в блоге для получения дополнительной информации. также проверьте официальный сайт

Ответ 3

Люди уже объяснили, как это сделать с помощью командной строки. В завершение я подумал, что я также покажу способ сделать это через пользовательский интерфейс в Android Studio.

Когда вы открываете "Конфигурации запуска/отладки", вы можете выбрать "APK из комплекта приложения" (вместо "APK по умолчанию").

Смотрите скриншот:

enter image description here

Ответ 4

Пока никто не предоставил решение получить APK от AAB.

Это решение будет генерировать универсальный двоичный файл в виде apk.

Добавьте --mode = универсальный к вашей команде bundletool (если вам нужно подписанное приложение, используйте параметры --ks по мере необходимости).

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--mode=universal

Измените имя выходного файла с .apks на .zip

Распакуйте и исследуйте

Файл universal.apk - это ваше приложение

Этот универсальный двоичный файл, вероятно, будет довольно большим, но он является отличным решением для отправки в отдел контроля качества или распространения приложения в любом месте, кроме магазина Google Play.

Ответ 5

Существует инструмент под названием bundletool, который может создать APK из вашего AAB файла:

Найти подробности об этом инструменте здесь: https://developer.android.com/studio/command-line/bundletool

Но вот некоторые основные моменты, взятые с этого сайта:

Создание APK файлов

Когда bundletool генерирует APK из вашего пакета приложений, он включает их в контейнер, называемый архивом набора APK, в котором используется расширение файла .apks. Чтобы создать набор APK для всех конфигураций устройства, поддерживаемых вашим приложением, из пакета приложения, используйте команду bundletool build-apks, как показано ниже:

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Обратите внимание, что приведенная выше команда создает набор неподписанных APK. Если вы хотите развернуть APK на устройстве, вам также необходимо включить информацию о подписи ваших приложений, как показано в приведенной ниже команде.

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
  --ks=/MyApp/keystore.jks
  --ks-pass=file:/MyApp/keystore.pwd
  --ks-key-alias=MyKeyAlias
  --key-pass=file:/MyApp/key.pwd

Установка APK

bundletool install-apks --apks=/MyApp/my_app.apks

Создание набора APK для конкретного устройства

bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Ответ 6

Refer Geek Dashboard for more info.

Для тех, кто хочет сгенерировать один универсальный файл APK из вашего пакета приложений для Android, вы должны использовать флаг --universal во время выполнения команды build-apks.

java -jar bundletool.jar build-apks --bundle=your_app.aab --output=your_app.apks --mode=universal

Где bundletool.jar - это файл jar bundletool, который вы загрузили здесь

your_app.aab - это комплект приложений Android для вашего приложения

your_app.apks - это выходной APK файл архива, который будет сгенерирован после запуска команды.

При выполнении вышеуказанной команды убедитесь, что вы поместили bundletool.jar и ваш AAB файл в одну и ту же папку.

Теперь вам нужно изменить формат файла your_app.apks на your_app.zip и извлечь его, чтобы найти файл universal.apk file

enter image description here

Примечание: используйте флаг –overwrite, чтобы перезаписать файл APK, если он уже существует с таким именем. В противном случае команда bundletool выдаст вам фатальную ошибку.

Ответ 7

Согласно документам, вы можете использовать ./gradlew :base:bundleDebug чтобы построить, где base - имя вашего модуля. Вы можете попробовать эту команду в терминале внутри Android Studio.