2013-03-29 2 views
0

Я пытаюсь изменить приложение Android с помощью apktool.Декомпилировать и перекомпилировать файлы apk на ubuntu

Я скачал apktool и теперь у меня есть 3 файла apktool, AAPT и apktool.jar

Я пытаюсь изменить фон в Gallery_3D.apk

Я использую эти команды декомпилировать а затем перекомпилировать

./apktool if Gallery 3D.apk 
./apktool d Gallery 3D.apk gallery 

Он отлично работает над 2 шагами, но в то время как перекомпиляции с помощью команды

./apktool b gallery Gallery 3D New.apk 

Однако я получаю эту ошибку на последнем шаге.

I: Checking whether sources has changed... 
I: Smaling... 
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/APKTOOL4811911322257021960.tmp, -I, /home/seat2/apktool/framework/1.apk, -S, /home/seat2/Desktop/apktool/gallery/res, -M, /home/seat2/Desktop/apktool/gallery/AndroidManifest.xml] 
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193) 
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301) 
    at brut.androlib.Androlib.buildResources(Androlib.java:248) 
    at brut.androlib.Androlib.build(Androlib.java:171) 
    at brut.androlib.Androlib.build(Androlib.java:154) 
    at brut.apktool.Main.cmdBuild(Main.java:182) 
    at brut.apktool.Main.main(Main.java:67) 
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL4811911322257021960.tmp, -I, /home/seat2/apktool/framework/1.apk, -S, /home/seat2/Desktop/apktool/gallery/res, -M, /home/seat2/Desktop/apktool/gallery/AndroidManifest.xml] 
    at brut.util.OS.exec(OS.java:87) 
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191) 
    ... 6 more 
Caused by: java.io.IOException: Cannot run program "aapt": java.io.IOException: error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:475) 
    at java.lang.Runtime.exec(Runtime.java:610) 
    at java.lang.Runtime.exec(Runtime.java:483) 
    at brut.util.OS.exec(OS.java:78) 
    ... 7 more 
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:164) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:81) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:468) 
    ... 10 more 
+2

мне кажется, что вам нужно 'aapt' быть в вашем' PATH' – 2013-03-29 06:29:03

+1

Если вы используете старую Andriod-SDK, вы должны обновить его. Также проверьте, что путь к файлу адаптера добавлен в ваш путь к среде. –

+0

Спасибо, был вопрос о пути. Я успешно создал приложение, но как всегда получаю эту ошибку при установке INSTALL_PARSE_FAILED_NO_CERTIFICATES –

ответ

0

Я знаю, что это довольно старый ответ, но я собираюсь опубликовать решение в случае кто-то по-прежнему нуждаются в помощи.

Первая проблема, на которую указал RC: вам нужно добавить переход на свой путь. Вы можете сделать это с помощью следующей команды:

PATH=$PATH:/location/of/aapt 

Чтобы устранить вторую проблему (INSTALL_PARSE_FAILED_NO_CERTIFICATES), вам необходимо подписать APK. Вы можете сделать это с помощью testsign.jar:

java -jar testsign.jar unsigned.apk signed.apk 
Смежные вопросы