使用Android Killer 将apk编译出错java.lang.IllegalStateException: Module with the Main dispatcher is missing

今天有同事问我使用Android Killer 将apk编译出错,心里想着这得是有dex验证?结果报错信息如下:

使用Android Killer 将apk编译出错java.lang.IllegalStateException: Module with the Main dispatcher is missing

 

显然不是dex验证,不过看报错信息,应该和kotlin有关,初步猜想反编译后破坏了其协程加载机制.

简单了解了下kotlin,发现之前是正常的,在kotlin 升级1.30后会出现这种幺蛾子,当然,先收起抱怨的小情绪,把问题先解决了.

拆解原包如下:

 

使用Android Killer 将apk编译出错java.lang.IllegalStateException: Module with the Main dispatcher is missing

编译后apk结构也大致相同,不过发现回编译后META-INF文件发生了变化,下面是对比图

使用Android Killer 将apk编译出错java.lang.IllegalStateException: Module with the Main dispatcher is missing

使用Android Killer 将apk编译出错java.lang.IllegalStateException: Module with the Main dispatcher is missing

 

好吧,把原apk中META-INF文件夹内对应module模组全部拷贝一份到回编译后apkMETA-INF文件夹内,再次运行,问题解决.

希望对大家有所帮助.