Невозможно преобразовать набор приложений в APK на Android

Я использую Android Studio 3.4.1. Я пытался преобразовать пакет приложений в APK с помощью инструмента для создания пакетов. Мне не удалось создать файл APK. Я пробовал использовать Создать файл Apk из файла aab (пакет приложений для Android)

Когда я запускаю команду

java -jar bundletool.jar build-apks  --bundle=app.aab --output=app.apks

Я получил ошибку ниже. Пожалуйста, предложите мне решение для создания APK.

INFO: The APKs will be signed with the debug keystore found at 'C:\Users\~\
.android\debug.keystore'.
[BT:0.10.2] Error: com.android.tools.build.bundletool.model.Aapt2Command$Aapt2Ex
ception: Command '[C:\Users\~\AppData\Local\Temp\8658885577631656545\output
\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\~\AppDat
a\Local\Temp\6789457478435634974\binary.apk, C:\Users\~\AppData\Local\Temp\
6789457478435634974\proto.apk]' didn't terminate successfully (exit code: -10737
41701). Check the logs.
java.lang.RuntimeException: com.android.tools.build.bundletool.model.Aapt2Comman
d$Aapt2Exception: Command '[C:\Users\~\AppData\Local\Temp\86588855776316565
45\output\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\Yamu
na\AppData\Local\Temp\6789457478435634974\binary.apk, C:\Users\~\AppData\Lo
cal\Temp\6789457478435634974\proto.apk]' didn't terminate successfully (exit cod
e: -1073741701). Check the logs.
        at com.android.tools.build.bundletool.io.ConcurrencyUtils.waitFor(Concur
rencyUtils.java:59)
        at com.android.tools.build.bundletool.io.ConcurrencyUtils.waitForAll(Con
currencyUtils.java:42)
        at java.util.function.Function.lambda$andThen$1(Unknown Source)
        at java.util.stream.ReferencePipeline.collect(Unknown Source)
        at com.android.tools.build.bundletool.io.ApkSerializerManager.serializeA
pks(ApkSerializerManager.java:180)
        at com.android.tools.build.bundletool.io.ApkSerializerManager.populateAp
kSetBuilder(ApkSerializerManager.java:101)
        at com.android.tools.build.bundletool.commands.BuildApksManager.executeW
ithZip(BuildApksManager.java:229)
        at com.android.tools.build.bundletool.commands.BuildApksManager.execute(
BuildApksManager.java:110)
        at com.android.tools.build.bundletool.commands.BuildApksCommand.execute(
BuildApksCommand.java:524)
        at com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain
.java:74)
        at com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain
.java:46)
        Suppressed: java.io.UncheckedIOException: java.nio.file.FileSystemExcept
ion: C:\Users\~\AppData\Local\Temp\8658885577631656545: failed to delete on
e or more files; see suppressed exceptions for details
                at com.android.tools.build.bundletool.io.TempDirectory.close(Tem
pDirectory.java:59)
                at com.android.tools.build.bundletool.commands.BuildApksCommand.
execute(BuildApksCommand.java:525)
                ... 2 more
        Caused by: java.nio.file.FileSystemException: C:\Users\~\AppData\Lo
cal\Temp\8658885577631656545: failed to delete one or more files; see suppressed
 exceptions for details
                at com.google.common.io.MoreFiles.throwDeleteFailed(MoreFiles.ja
va:791)
                at com.google.common.io.MoreFiles.deleteRecursively(MoreFiles.ja
va:537)
                at com.android.tools.build.bundletool.io.TempDirectory.close(Tem
pDirectory.java:57)
                ... 3 more
                Suppressed: java.nio.file.DirectoryNotEmptyException: C:\Users\Y
amuna\AppData\Local\Temp\8658885577631656545\output\windows
                        at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unkno
wn Source)
                        at sun.nio.fs.AbstractFileSystemProvider.delete(Unknown
Source)
                        at java.nio.file.Files.delete(Unknown Source)
                        at com.google.common.io.MoreFiles.deleteRecursivelyInsec
ure(MoreFiles.java:665)
                        at com.google.common.io.MoreFiles.deleteDirectoryContent
sInsecure(MoreFiles.java:685)
                        at com.google.common.io.MoreFiles.deleteRecursivelyInsec
ure(MoreFiles.java:658)
                        at com.google.common.io.MoreFiles.deleteDirectoryContent
sInsecure(MoreFiles.java:685)
                        at com.google.common.io.MoreFiles.deleteRecursivelyInsec
ure(MoreFiles.java:658)
                        at com.google.common.io.MoreFiles.deleteRecursively(More
Files.java:526)
                        ... 4 more
Caused by: java.util.concurrent.ExecutionException: com.android.tools.build.bund
letool.model.Aapt2Command$Aapt2Exception: Command '[C:\Users\~\AppData\Loca
l\Temp\8658885577631656545\output\windows\aapt2.exe, convert, --output-format, b
inary, -o, C:\Users\~\AppData\Local\Temp\6789457478435634974\binary.apk, C:
\Users\~\AppData\Local\Temp\6789457478435634974\proto.apk]' didn't terminat
e successfully (exit code: -1073741701). Check the logs.
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(Abstrac
tFuture.java:502)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.j
ava:481)
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(Ab
stractFuture.java:83)
        at com.android.tools.build.bundletool.io.ConcurrencyUtils.waitFor(Concur
rencyUtils.java:49)
        ... 10 more
Caused by: com.android.tools.build.bundletool.model.Aapt2Command$Aapt2Exception:
 Command '[C:\Users\~\AppData\Local\Temp\8658885577631656545\output\windows
\aapt2.exe, convert, --output-format, binary, -o, C:\Users\~\AppData\Local\
Temp\6789457478435634974\binary.apk, C:\Users\~\AppData\Local\Temp\67894574
78435634974\proto.apk]' didn't terminate successfully (exit code: -1073741701).
Check the logs.
        at com.android.tools.build.bundletool.model.Aapt2Command$CommandExecutor
.execute(Aapt2Command.java:62)
        at com.android.tools.build.bundletool.model.Aapt2Command$1.convertApkPro
toToBinary(Aapt2Command.java:36)
        at com.android.tools.build.bundletool.io.ApkSerializerHelper.writeToZipF
ile(ApkSerializerHelper.java:159)
        at com.android.tools.build.bundletool.io.ApkSerializerHelper.writeToZipF
ile(ApkSerializerHelper.java:144)
        at com.android.tools.build.bundletool.io.SplitApkSerializer.writeToDisk(
SplitApkSerializer.java:75)
        at com.android.tools.build.bundletool.io.SplitApkSerializer.writeSplitTo
Disk(SplitApkSerializer.java:53)
        at com.android.tools.build.bundletool.io.ApkSetBuilderFactory$ApkSetArch
iveBuilder.addSplitApk(ApkSetBuilderFactory.java:105)
        at com.android.tools.build.bundletool.io.ApkSerializerManager$ApkSeriali
zer.serialize(ApkSerializerManager.java:376)
        at com.android.tools.build.bundletool.io.ApkSerializerManager.lambda$nul
l$3(ApkSerializerManager.java:184)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$Trusted
FutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:117)
        at com.google.common.util.concurrent.InterruptibleTask.run(Interruptible
Task.java:38)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run(Tru
stedListenableFutureTask.java:77)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

person Yamuna    schedule 09.09.2019    source источник
comment
это знак app-bundle?   -  person Md Abdul Gafur    schedule 09.09.2019
comment
правильный ли ваш путь к файлам bundletool.jar и app.aab?   -  person Manohar    schedule 09.09.2019


Ответы (3)


Вам необходимо загрузить последнюю версию bundletool.jar. После загрузки инструмента для создания пакетов необходимо открыть терминал. с тем же путем, что и инструмент связки. выполните команду ниже, вы можете сгенерировать APKS.

1 Команда ниже создает набор неподписанных APK.

java -jar bundletool.jar build-apks  --bundle=app.aab --output=unsigned.apks

2 Команда ниже создает набор подписанных APK.

java -jar bundletool.jar build-apks  --bundle=app.aab --output=signed.apks --ks=test.jks --ks-key-alias=replaceyouralieas

Вышеупомянутая команда попросит вас ввести пароль хранилища ключей, вам необходимо ввести пароль хранилища ключей.

3 Команда ниже найдет правильный APK для вашего устройства и установит на него.

java -jar bundletool.jar install-apks --apks=signed.apks 

Подробнее…

person Sanjay Bhalani    schedule 09.09.2019

Исправьте разрешения или станьте владельцем _1 _... он не может там удалить. Путь к профилю с ~ даже довольно странен для Windows, потому что ~ обозначает home каталог текущего пользователя в Linux. Фактически, ~ должно быть текущим именем пользователя Windows, чтобы он унаследовал разрешения из каталога профиля текущего пользователя ... чего нет, и именно поэтому он терпит неудачу.

Связывание C:\\Users\~ с C:\\Users\username может быть простым способом решения проблемы, когда невозможно изменить ~ для временного хранения.

Не стесняйтесь сообщать о проблеме на GitHub, если последняя версия bundletool по-прежнему ошибочно выбирает каталог профиля пользователя. Можно представить, что подсистема Linux может мешать, потому что это ~ не "нормально" для Windows.

person Martin Zeitler    schedule 09.09.2019
comment
На самом деле ~ - это не имя пользователя, я просто добавил, чтобы указать имя пользователя. - person Yamuna; 11.09.2019

Привет, вы используете Android Studio, Моя тема - это почему вы не следуете традиционному подходу в Android Studio.

Шаг 1 -> Откройте Android Studio и выберите «Сборка». Шаг 2 -> Выберите Build Bundle / APK. Затем вы увидите 2 варианта Build APK и Build Bundle. Шаг 3 -> Выберите «Создать APK для APK» (это для обычного APK).

Для подписанного APK такая же тема

Возможно, вы знаете эти вещи, но я не требую использовать команды и преобразование из .aab в .apk.

person Mani    schedule 09.09.2019