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.

Другие вопросы по тегам