在这个例子中我使用了这个应用程序: Perfect_Piano_v7.1.3_apkpure.com
Apktool版本:v2.3.3 IBotPeaches fork https://github.com/iBotPeaches/Apktool/releases/tag/v2.3.3
原始应用程序在我的设备和模拟器上工作正常,但在我解压缩并重新打包并重新安装后,应用程序立即崩溃。在重建之前,我没有对应用程序进行任何更改,并使用--no-src
标志来反编译smali
个文件。
apktool d -f --no-src Perfect_Piano_v7.1.3_apkpure.com.apk
rm Perfect_Piano_v7.1.3_apkpure.com.apk
apktool b -f Perfect_Piano_v7.1.3_apkpure.com
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore Perfect_Piano_v7.1.3_apkpure.com.apk alias_name
我也尝试用--use-aapt2
标志构建。
Logcat会抛出以下错误:
05-30 19:59:13.781 1691-1714/? W/WindowManager: Failed looking up window
java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@29a1c85 does not exist
at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8733)
at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8724)
at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2697)
at com.android.server.wm.Session.remove(Session.java:187)
at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3099)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5606)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3409)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
您可以在此pastebin
中找到完整的logcat日志.dex
个文件,因此--no-src
标记,因此该问题可能与smali
编译无关。 此时我一无所知,我也遇到了与其他.apk
文件相同的问题。