有一个android系统应用程序。
使用Java接口Class.forName()加载(并且必须加载)其中一些类。
当应用程序开发时,我们通过eclipse构建它并将apk文件推送到我们的设备上,该设备闪现了操作系统的IE版本。
这样可行,应用程序正常运行。
经过测试,我将应用程序的源代码复制到AOSP的packages / app /目录并构建到操作系统中。
然后,问题就出现了。
在运行应用程序时,它始终抛出ClassNotFoundException
。
我试图反编译在apk文件中编译的dex文件,发现所有未直接使用的类(但由Class.forName加载)都丢失了。
这可能是一些优化选项从dex文件中删除这些类。
我们可以做些什么来禁用这些选项来恢复我的课程?
顺便说一下,我发现一些Android平台(例如Allwinner A33 Android 4.4)有这个问题,但其他人(例如Mediatek MT6572 Android 4.4)则没有。