apktool построить 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, почему он не работает?
13 ответов
Кажется, есть некоторая проблема в создании ресурсов при перекомпиляции apk. что вы можете сделать, когда вы декомпилируете свой apk, используйте эту команду
apktool d -f -r apkfilename.apk
здесь -f - заменить предыдущий декомпилированный код apk, а -r - игнорировать декомпиляцию ресурсов.
это предотвратит декомпиляцию ресурсов и просто скопирует те же ресурсы при перекомпиляции apk.
Если вы использовали v1 и теперь обновлены до v2, попробуйте вручную удалить файл фреймворка.
На Windows 8 это обычно в C:\Users\YourName\apktool\framework\1.apk
,
Файл должен быть восстановлен, как только вы попытаетесь что-то построить.
Моя проблема была решена путем удаления \framework\1.apk, создания резервной копии файлов, которые я изменил, удаления директории и повторной декомпиляции *.apk и т. Д. (В linux путь home / [user] / apktool /...). После обновления apktool всегда загружал старую таблицу ресурсов. N
Для меня я решил эту проблему, сначала очистив каталог фреймворка apktool, набрав в терминале.
apktool пустая структура-каталог
После этого я удалил apktool и связанные файлы, набрав
sudo apt purge apktool
Затем я зашел на https://bitbucket.org/iBotPeaches/apktool/downloads/, чтобы получить последний файл jar для apktool (apktool_2.5.0.jar на момент написания этой статьи).
При первом запуске
java -jar apktool_2.5.0.jar b <MyAPP.apk> # Без><
оно работает.
поскольку я работаю с apktool в большинстве случаев, мне нужна была ситуация, когда я мог запускать apktool из любого места, поэтому я дал разрешения на выполнение файла jar, набрав
sudo chmod +x apktool_2.5.0.jar
Впоследствии я переместил его / usr / bin /, набрав
sudo apktool_2.5.0.jar /usr / bin /
Определенно кажется, что у меня была проблема с ПУТЕМ, которая была у меня некоторое время назад. Вы добавили aapt в PATH? Если у вас все еще есть проблемы, я сделал хороший пакет apk в bash, чтобы избежать всех этих проблем с зависимостями. Он поддерживает apktool, signapk, zipalign,adb, fastboot и heimdall. Проверьте это. Все, что вам нужно, это текущая установка Java.
http://forum.xda-developers.com/android/development/toolkit-apk-munky-rench-t3026757/post58747626
На самом деле не достаточно информации, чтобы дать вам определенный ответ.
Как вы уже упоминали, используя разные версии, но проблема AAPT была решена в версии 2.4. Зависимости были уменьшены до версии Java 1.8 или выше и фреймворка.
Я использую Debian и имею следующее:
- Apktool 2.4
- Ява версия 11
- Android Framework
Это все, что нужно, чтобы избавиться от ошибки aapt path.
Последняя ошибка, с которой я столкнулся, не имела отношения к aapt, но была в структуре, поэтому я выполнил эту команду
apktool empty-framework-dir
И это решило это.
Есть некоторые причины вашей ошибки. Попробуйте следующее, чтобы решить вашу проблему.
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 (необходим root)
3. Убедитесь, что файл Apktool.jar является исполняемым (chmod + x)
4.Убедитесь, что вы правильно установили Java или если вы правильно установили Java, ваш путь к переменной может быть неправильным. Чтобы решить эту проблему, переустановите Java, а затем правильно установите путь переменной.
Для получения дополнительной информации об устранении этой проблемы посетите http://onephin.com/fix-apktool-dont-compile-dont-build-error/
Попробуйте установить 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/
Основной вопрос - версия apktool, вам нужна 2.4.0
Вы должны вручную установить его с ibotpeaches git hub
здесь хорошая информация
https://www.youtube.com/watch?v=kB6s10Uwpcs
и автоматический скрипт для Кали https://github.com/catenatedgoose?tab=repositories
Попытайтесь поместить каталог, который включает файл aapt, в ваш PATH. например, экспорт PATH=$PATH:./ ./apktool b
Я просто сталкиваюсь с той же проблемой при запуске apktool d foo.apk
(декомпилированный успех), а затем apktool b foo
(перекомпиляция не удалась с похожей ошибкой).
apktool
Инструмент выше был установлен через sudo apt-get install apktool
на кали линукс.
Таким образом, решение было посещений apktool
Официальный сайт, например https://connortumbleson.com/2017/01/23/apktool-v2-2-2-released/ (это последняя версия на момент написания статьи), загрузите его, md5sum, например md5sum apktool_2.2.2.jar
чтобы проверить, затем переименуйте этот apktool_2.2.2.jar в apktool.jar.
Тогда делай java -jar ./apktool.jar b foo
перекомпилировать, это успех без ошибок (сгенерированный apk находится по адресу./foo/dist/foo.apk).
На мой взгляд, проблема в том, как вы устанавливаете apktool... У меня была та же проблема, и я сделал это, и это сработало очень хорошо: для установки вам сначала нужно удалить любой установленный apktool с помощью команды:sudo apt purge apktool
Тогда вам придется установить apktool, но другим способом. Чтобы продолжить, сохраните ссылку ниже как в каталоге.[https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool] Затем откройте эту ссылку ниже и загрузите последний файл apktool.jar: https://bitbucket.org/iBotPeaches/apktool/downloads . / Затем переименуйте файл какapktool.jar
После этого дайте обоим файлам разрешение командой:
Sudo chmod -x apktool.jar
И для сохраненного скрипта:
Sudo chmod -x apktool
В конце скопируйте оба файла в каталог:
/usr/local/bin
По команде:
Sudo cp apktool.jar /usr/local/bin
И файл скрипта:
Sudo cp apktool /usr/local/bin
После этого попробуйте запуститьapktool
в терминале.
Решение состоит в том, чтобы включить каталог apktool в системный PATH.