Ошибка 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).
Ответ 9
Основной вопрос - версия apktool, вам нужна 2.4.0
Вы должны вручную установить его с ibotpeaches git hub
здесь хорошая информация
https://www.youtube.com/watch?v=kB6s10Uwpcs
и автоматический скрипт для Кали https://github.com/catenatedgoose?tab=repositories
Ответ 10
На самом деле не достаточно информации, чтобы дать вам определенный ответ.
Как вы уже упоминали, используя разные версии, но проблема AAPT была решена в версии 2.4. Зависимости были уменьшены до версии Java 1.8 или выше и фреймворка.
Я использую Debian и имею следующее:
- Apktool 2.4
- Ява версия 11
- Android Framework
Вот и все, что нужно, чтобы избавиться от ошибки aapt path.
Последняя ошибка, с которой я столкнулся, не имела отношения к aapt, но была в структуре, поэтому я выполнил эту команду
apktool empty-framework-dir
И это решило это.
Ответ 11
Решение состоит в том, чтобы включить ваш каталог apktool в вашу систему PATH.