web-dev-qa-db-ja.com

apktool build 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内でビルドされているようですが、なぜ機能しないのですか?

20
user3046636

Apkの再コンパイル中にリソースを構築する際に問題があるようです。あなたができることは、apkを逆コンパイルするときにこのコマンドを使用することです

apktool d -f -r apkfilename.apk

ここで、-fは以前の逆コンパイルされたapkのコードを置き換え、-rはリソースの逆コンパイルを無視します。

これにより、リソースの逆コンパイルが防止され、apkを再コンパイルするときに同じリソースが単純にコピーされます。

49

V1を使用していて、v2にアップグレードした場合は、フレームワークファイルを手動で削除してみてください。

Windows 8では、通常C:\Users\YourName\apktool\framework\1.apk

何かをビルドしようとすると、ファイルを再生成する必要があります。

5
Michael Litvin

私の問題は、\ framework\1.apkを削除し、変更したファイルのバックアップを作成し、dirを消去し、*。apkを再コンパイルするなどして解決しました(Linuxでは、パスはhome/[user]/apktool / ...)。更新後、apktoolは常に古いリソーステーブルをロードしました。 N

2
Ferenc

間違いなく私がしばらく前に持っていた適切なPATH問題のように思えます。 PATHにaaptを追加しましたか?それでも問題がある場合は、これらの依存関係の問題をすべて回避するために、bashで適切なapkキットを作成しました。 apktool、signapk、zipalign、adb、fastboot、heimdallをサポートしています。見てみな。必要なのは、現在のJavaインストール。

http://forum.xda-developers.com/Android/development/toolkit-apk-munky-rench-t3026757/post58747626#post58747626

1
mike the inkman

apktool d foo.apk(逆コンパイルされた成功)を実行してからapktool b foo(再コンパイルが同様のエラーで失敗した)を実行すると、同じ問題が発生します。

上記のapktoolツールは、Kali Linuxの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にあります)。

0
林果皞

pATHにaaptファイルを含むディレクトリを配置してください。たとえば、export PATH = $ PATH:./ ./apktool b

0
xiangrong

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/

0
Aha

明確な答えを出すのに十分な情報がありません。

異なるバージョンを使用して言及したが、バージョン2.4でaaptの問題は解決されました。依存関係はJavaバージョン1.8以降およびフレームワークに削減されました。

私はDebianを使用していますが、次のものがあります。

  • Apktool 2.4
  • Javaバージョン11
  • Androidフレームワーク

これで、aaptパスエラーを取り除くことができました。

私が遭遇した最後のエラーはaaptとは無関係でしたが、フレームワークにあったので、このコマンドを実行しました

apktool empty-framework-dir

そしてそれはそれを解決しました。

0
Goos3

エラーにはいくつかの理由があります。以下を試して問題を解決してください。

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にあることを確認します(ルートが必要です)

3. Apktool.jarファイルが実行可能であることを確認します(chmod + x)

4。Javaを正しくインストールするか、またはJavaを適切にインストールすると、変数パスが間違っている可能性があります。この問題を修正するには、再インストールJavaその後、変数パスを適切に設定します。

この問題を修正する詳細については、 http://onephin.com/fix-apktool-dont-compile-dont-build-error/ にアクセスしてください。

0
Kuldeep Makwana

主な問題は2.4.0が必要なapktoolバージョンです

Ibotpeaches git hubから手動でインストールする必要があります

ここでいくつかの良い情報

https://www.youtube.com/watch?v=kB6s10Uwpcs

およびkali用の自動スクリプト https://github.com/catenatedgoose?tab=repositories

0
goose goose