2

apktool を実行して apk を逆コンパイルしようとすると、エラーが発生します。

 Exception in thread "main" brut.androlib.AndrolibException: brut.directory.DirectoryException: java.util.zip.ZipException: error in opening zip file
        at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:199)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:83)
        at brut.apktool.Main.cmdDecode(Main.java:146)
        at brut.apktool.Main.main(Main.java:77)
    Caused by: brut.directory.DirectoryException: java.util.zip.ZipException: error in opening zip file
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:55)
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:38)
        at brut.androlib.res.util.ExtFile.getDirectory(ExtFile.java:55)
        at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:197)
        ... 3 more
    Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:128)
        at java.util.zip.ZipFile.<init>(ZipFile.java:145)
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:53)
        ... 6 more

このガイドに従いました。http://www.adventuresofanentrepreneur.net/creating-a-mobile-appsgames-company/how-to-unpack-pack-an-apk-file

操作に必要なファイルがいくつかありませんか?

4

3 に答える 3

0

このエラーは、Apktool が Zipfile を開いて必要なファイルを読み取ることができないことを意味します (classes.dexこの場合)。通常の Zip プログラム (7zipまたはのようにWinrar) を使用して、apk を解凍してみてください。これが機能する場合は、apktool に問題があるため、バグを報告する必要があります。ただし、失敗すると思います。その場合、その理由を理解する必要があります。次のいずれかの理由が考えられます。

  1. Apk は「一般的なアクセス ビット」ハックを利用しますが、これは Android では実行されなくなったため、apktool はそのサポートを削除しました。
  2. APKにはパスワードがあります。
  3. APK が正しくダウンロードされていないため、完全ではありません
于 2015-04-21T14:19:38.377 に答える
0

他のすべてのソリューションを確認しましたが、マシンにプリインストールされている jdk1.6 を使用していることがわかりました。おそらく、Java の更新により、この問題が解決される可能性があります。apktool のドキュメントには、最低限の jdk 1.7 が必要であることが明示的に記載されています。詳細はこちら: https://code.google.com/p/android-apktool/

于 2014-10-05T08:35:59.830 に答える