Ошибка Apktool на Mac

#android #apktool

#Android #apktool

Вопрос:

Когда я пытаюсь запустить 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

Мне не хватает некоторых файлов, необходимых для работы?

Ответ №1:

Я проверил все другие решения, но теперь обнаружил, что использую jdk1.6, который был предварительно установлен на моем компьютере. Возможно, обновление java могло бы решить эту проблему. В документации apktool явно упоминается, что для него требуется минимум jdk 1.7. Дополнительная информация здесь:https://code.google.com/p/android-apktool

Ответ №2:

попробуйте сначала разархивировать ваш apk-файл

apk является архивным файлом, в сообщении говорится, что сначала не удается разархивировать apk

итак, попробуйте самостоятельно разархивировать файл apk, чтобы определить, настоящий ли это apk

Ответ №3:

Эта ошибка означает, что Apktool не может открыть Zipfile для чтения файлов, которые он хочет ( classes.dex в данном случае). Попробуйте использовать обычную Zip-программу (например, 7zip или Winrar ) и попробуйте разархивировать apk. Если это работает, значит, неисправен apktool, и вам следует сообщить об ошибке. Однако я считаю, что это приведет к сбою, и в этом случае вам нужно выяснить, почему это так. Это может быть любая из следующих причин:

  1. Apk использует «бит общего доступа», который больше не работает на Android, поэтому apktool удалил его поддержку.
  2. В Apk есть пароль.
  3. Apk был загружен неправильно, поэтому не завершен