#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, и вам следует сообщить об ошибке. Однако я считаю, что это приведет к сбою, и в этом случае вам нужно выяснить, почему это так. Это может быть любая из следующих причин:
- Apk использует «бит общего доступа», который больше не работает на Android, поэтому apktool удалил его поддержку.
- В Apk есть пароль.
- Apk был загружен неправильно, поэтому не завершен