Ошибка apkool build apk

У меня возникают очень неприятные проблемы с проблемой приложения apktool. Я не понимаю, что я делаю неправильно, или в чем проблема. Я попробовал это на debian, и на linux mint. Я использовал разные версии apktool,

что приводит к той же ошибке:

I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/awesomename/apktool/framework/1.apk, -S, /home/awesomename/out/./res, -M, /home/awesomename/out/./AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
    at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
    at brut.androlib.Androlib.buildResources(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.apktool.Main.cmdBuild(Unknown Source)
    at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/windows/apktool/framework/1.apk, -S, /home/windows/out/./res, -M, /home/windows/out/./AndroidManifest.xml]
    at brut.util.OS.exec(Unknown Source)
    ... 7 more
Caused by: java.io.IOException: Cannot run program "aapt": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
    at java.lang.Runtime.exec(Runtime.java:617)
    at java.lang.Runtime.exec(Runtime.java:485)
    ... 8 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
    ... 10 more

Кажется, он не может использовать aapt, но я читал о apktool. И кажется, что aapt встроен внутри apktool, почему он не работает?

Ответы

Ответ 1

Кажется, есть некоторая проблема в создании ресурсов при перекомпиляции apk. что вы можете сделать, когда вы декомпилируете apk, используйте эту команду

apktool d -f -r apkfilename.apk

здесь -f следует заменить предыдущий декомпилированный код apk, а -r - игнорировать декомпиляцию ресурсов.

это предотвратит декомпиляцию ресурсов и просто скопирует те же ресурсы, когда вы перекомпилируете apk.

Ответ 2

Если вы используете v1 и теперь обновлены до версии v2, попробуйте вручную удалить файл фреймворка.

В окнах 8 он обычно находится в C:\Users\YourName\apktool\framework\1.apk.

Файл должен быть восстановлен после попытки создать что-либо.

Ответ 3

Моя проблема была решена путем удаления \framework\1.apk, создания резервной копии файлов, которые я модифицировал, удаления каталога и декомпиляции *.apk снова и т.д. (на linux путь Главная/[пользователь]/apktool/...). После обновления apktool всегда загружает старую таблицу ресурсов. N

Ответ 4

Определенно кажется проблемой AATPAT PATH, с которой я некоторое время назад возвращался. Вы добавили aapt в PATH? Если у вас все еще есть проблемы, я сделал хороший набор apk в bash, чтобы избежать всех этих проблем с зависимостями. Он поддерживает apktool, signapk, zipalign, adb, fastboot и heimdall. Проверьте это. Все, что вам нужно, это текущая установка java.

http://forum.xda-developers.com/android/development/toolkit-apk-munky-rench-t3026757/post58747626#post58747626

Ответ 5

попробуйте поставить каталог, который включает файл aapt в ваш PATH. например, экспорт PATH = $PATH:././apktool b

Ответ 6

попробуйте установить ia32-libs и обновить последнюю версию apktool. (если возможно перезагрузка)

apktool требует "ia32-libs", который недоступен после Ubuntu 12.04. установить ia32-libs

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

Загрузите последнюю версию apktools.jar - https://bitbucket.org/iBotPeaches/apktool/downloads

apktool полное руководство по установке - http://ibotpeaches.github.io/Apktool/install/

Ответ 7

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

1.Загрузить новый (измененный) файл jar отсюда http://onephin.com/fix-apktool-dont-compile-dont-build-error/   1.1 Извлеките его.    1.2 Переименуйте его в Apktool.jar    1.3 Поместите этот файл в папку Apktool.

2. Убедитесь, что папка Apktool находится в /usr/local/bin (требуется корень)

3. Убедитесь, что файл Apktool.jar является исполняемым (chmod + x)

4. Убедитесь, что вы правильно установили Java, или если вы правильно установили Java, ваш путь переменной может быть неправильным. Чтобы устранить эту проблему, переустановите java, а затем правильно установите путь Variable.

Подробнее о том, как исправить эту проблему http://onephin.com/fix-apktool-dont-compile-dont-build-error/

Ответ 8

Я просто сталкиваюсь с той же проблемой при запуске apktool d foo.apk (декомпилированный успех), а затем apktool b foo (перекомпилировать не удалось с аналогичной ошибкой).

Инструмент apktool выше был установлен через sudo apt-get install apktool в Kali Linux.

Итак, решение было посещением официального сайта apktool, например. https://connortumbleson.com/2017/01/23/apktool-v2-2-2-released/ (последняя версия в это время написания), скачайте его, md5sum it, например. md5sum apktool_2.2.2.jar, чтобы проверить, а затем переименуем apctool_2.2.2.jar в apktool.jar.

Затем выполните java -jar ./apktool.jar b foo, чтобы перекомпилировать, это успех без ошибок (сгенерированный apk, расположенный в./foo/dist/foo.apk).

Ответ 10

На самом деле не достаточно информации, чтобы дать вам определенный ответ.

Как вы уже упоминали, используя разные версии, но проблема AAPT была решена в версии 2.4. Зависимости были уменьшены до версии Java 1.8 или выше и фреймворка.

Я использую Debian и имею следующее:

  • Apktool 2.4
  • Ява версия 11
  • Android Framework

Вот и все, что нужно, чтобы избавиться от ошибки aapt path.

Последняя ошибка, с которой я столкнулся, не имела отношения к aapt, но была в структуре, поэтому я выполнил эту команду

apktool empty-framework-dir

И это решило это.

Ответ 11

Решение состоит в том, чтобы включить ваш каталог apktool в вашу систему PATH.