2014-04-26 3 views
17

Sto riscontrando problemi molto fastidiosi con il problema apktool dell'applicazione. Non capisco cosa sto facendo male, o qual è il problema. Ho provato questo su debian e su linux mint. Ho usato diverse versioni di apktool,apktool build apk fallisce

conseguente lo stesso errore:

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 

Sembra non può utilizzare aapt, ma ho letto su apktool. E sembra che aapt sia costruito dentro apktool, perché non funziona?

risposta

41

Sembra che ci sia qualche problema nella creazione delle risorse durante la ricompilazione dell'apk. che cosa si può fare è, quando si decompilare l'utilizzo apk questo comando

apktool d -f -r apkfilename.apk 

qui -f è quello di sostituire il codice precedente apk decompilato e -r è di ignorare la decompilazione delle risorse.

ciò impedirebbe la decompilazione delle risorse e copierà semplicemente le stesse risorse quando si ricompila l'apk.

+0

Il problema è che questo non mi permette di vedere le cartelle dei valori. Qual è l'unica ragione per cui sto decompilando l'apk. – ideaman924

0

prova a mettere la directory che include il file aapt nel PATH. ad esempio, export PATH = $ PATH: ./ ./apktool b

4

Nel caso in cui si stia utilizzando v1 e ora si sia passati alla v2, provare manualmente a eliminare il file framework.

Su Windows 8 è normalmente C:\Users\YourName\apktool\framework\1.apk.

Il file deve essere rigenerato quando si tenta di creare qualcosa.

+3

Su OS X (macOS) è su '/ Users/ // Library/apktool/framework/1.apk'. – nimrodm

+1

Linux è in/home/apktool/framework' –

-1

La soluzione è includere la directory apktool nel PATH del sistema.

1

Il mio problema è stato risolto eliminando \ framework \ 1.apk, facendo un backup sui file che ho modificato, cancellando la directory e decompilando * .apk di nuovo, ecc ... (su linux, il percorso è home/[utente]/apktool/ ...). Dopo l'aggiornamento, apktool ha sempre caricato la vecchia tabella delle risorse. N

0

ci sono alcune motivo del vostro errore. Prova questi seguenti per risolvere il tuo problema.

1.Scarica il nuovo file jar (modificato) da qui http://onephin.com/fix-apktool-dont-compile-dont-build-error/ 1.1 Estrai. 1.2 Rinominarlo in Apktool.jar 1.3 Posizionare questo file nella cartella Apktool.

2.Make che la cartella Apktool è nella// local/bin usr (root necessario)

3.Make che il file Apktool.jar è eseguibile (chmod + x)

4.Make sicuro si installa java correttamente o se si installa java correttamente, il percorso della variabile potrebbe essere errato. Per risolvere questo problema Reinstallare java e quindi impostare correttamente il percorso della variabile.

Per ulteriori informazioni su Per risolvere questo problema Visita http://onephin.com/fix-apktool-dont-compile-dont-build-error/

0

Ho appena incontrato lo stesso problema quando eseguito apktool d foo.apk (successo decompilato) e poi apktool b foo (ricompilare non riuscita con errore simile).

Lo strumento apktool sopra è stato installato tramite sudo apt-get install apktool su Kali Linux.

Quindi, la soluzione era il sito ufficiale delle visite apktool, ad es. https://connortumbleson.com/2017/01/23/apktool-v2-2-2-released/ (è l'ultima versione in questo momento di scrittura), scaricalo, md5sum, ad es. md5sum apktool_2.2.2.jar da verificare, quindi rinominare apktool_2.2.2.jar in apktool.jar.

Quindi effettuare la ricompilazione di java -jar ./apktool.jar b foo, senza errori (l'apk generato situato in ./foo/dist/foo.apk).