2013-08-07 29 views
6

Mam następujący wyjątek po dekodowaniu pliku APK w trybie debugowania i próby zbudowania nowego pliku APK w trybie debugowania. Jestem zdezorientowany i nie mam co robić. Kiedy próbuję następujących otrzymuję dokładnie taki sam wynik.Jak rozwiązać problem z brut.androlib.AndrolibException

$java -jar ./apktool.jar d -d meet.apk out 
$java -jar ./apktool.jar b -d out meet.apk 

czy to

$./apktool d -d meet.apk out 
$./apktool b -d out meet.apk 

uzyskać następujący wynik

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/APKTOOL4160944918573250929.tmp, -I, /root/apktool/framework/1.apk, -S, /home/lab2alex/Documents/out/res, -M, /home/lab2alex/Documents/out/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:174) 
at brut.apktool.Main.main(Main.java:59) 
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL4160944918573250929.tmp, -I, /root/apktool/framework/1.apk, -S, /home/lab2alex/Documents/out/res, -M, /home/lab2alex/Documents/out/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:488) 
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:470) 
... 10 more 

co należy zrobić

+1

' Nie można uruchomić programu "aapt": java.io.IOException: error = 2, Brak takiego pliku lub katalogu "- to jest początek ... Nie wiem zbyt wiele o tym JAR/APK, aby powiedzieć cokolwiek innego, ale upewnij się, że ten plik istnieje. – Makoto

+0

tak, ale nie rozumiem, dlaczego tak się dzieje. Udowodniono, że apktool działa bez żadnego problemu (oczywiste, z wyjątkiem mojego przypadku). i ten błąd pochodzi z pliku jar apktoola. – eskoba

Odpowiedz

0

To Najpierw sprawdź, czy używasz najnowszej wersji aapt. Po drugie sprawdzenie, czy używasz najnowszej wersji apktoola tej wersji beta jest całkowicie w porządku http://connortumbleson.com/2013/10/apktool-2-0-0-beta-7-released/ Trzecie sprawdzenie, czy używasz poprawnej wersji java. Forth i ewentualnie rozwiązanie Twojego problemu w niektórych dystrybucjach Linuksa trzeba będzie te bibliotekami: glibc zlib libstdC++ 47

piąte ZAWSZE dostawa --frame-path i ustawić ją na coś, gdzie trzeba prawidłową pozwolenie .

1

Jeśli korzystasz z wersji 1, a teraz zaktualizowano ją do wersji 2, spróbuj ręcznie usunąć plik struktury.

W systemie Windows 8 normalnie jest to C:\Users\YourName\apktool\framework\1.apk.

Plik powinien zostać zregenerowany, gdy spróbujesz coś zbudować.

+0

W tym folderze nie ma apk! –

+0

Próbowałem tego i ponownie wygenerowałem plik '1.apk'. Również jeśli uruchomię 'apktool if file.apk' generuje' 127.apk', ale gdy dekompiluje się obrazy używa 1.apk – Fabiotk

0

Spróbuj użyć najnowszej wersji ap pulpetu. Czasami otwarcie wiersza polecenia z Uruchom jako administrator może wykonać job.But Później siedzę z tego rodzaju kodu

protected void onCreate(android.os.Bundle paramBundle) 
    { 
    // Byte code: 
    // 0: iconst_0 
    // 1: istore_2 
    // 2: aload_0 
    // 3: aload_1 
    // 4: invokespecial 755 ****/***/***/c:onCreate (Landroid/os/Bundle;)V 
    // 7: aload_0 
    // 8: invokevirtual 759 ****/***/***/:getApplicationContext()Landroid/content/Context; 
    // 11: invokestatic 764 com/facebook/accountkit/AccountKit:initialize (Landroid/content/Context;)V 
    // 14: invokestatic 201 ****/***/***/e:a ()****/***/***/e; 
    // 17: invokevirtual 766 ****/***/***/e:b ()I 
    // 20: istore 14 
    // 22: iload 14 
    // 24: ifle +13 -> 37 
    // 27: iload 14 
.............. 
} 

***/***/** reprezentuje ścieżkę pakietów, które mogą ujawnić, co próbuję rozszyfrować :)

Powiązane problemy