我几乎完成了我的第一个真正的 Android 项目,一个出租车订购应用程序,只剩下一些小的可用性问题。对于未来的版本,我们计划像一些好的程序那样实现编程代码和资源的内置自动更新。我设法运行了一个简单的示例,基于http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html,如何在 android/dalvik 上动态加载 Java 类?是否可以在运行时从 Android 应用程序动态加载库?. 我不会在这里发布完整的代码,它看起来很像上面的链接。主 apk 充当启动器,它从 SD 卡加载一个 jar 文件,从那里加载一个特殊类,实例化一个对象并通过 Java Reflect API 调用它的方法,这只是调出 ab AlertDialog。
但我希望能够在启动器和加载的库中使用通用的基本 Java 接口,充当 API。所以我试图在启动器和库中声明一个名为 Problem 的接口。代码是这样的:
Class<?> problemClass = cl.loadClass("ru.homez.euler.Problem1");
Problem problem = (Problem)problemClass.newInstance();
problem.solve(this);
Dalvik VM 不喜欢这个,我明白了
java.lang.IllegalAccessError:预验证类中的类引用解析为意外实现
我认为这是因为在启动器和库中都定义了问题接口,我在这里看到了类似的问题。如何处理?