【发布时间】:2016-05-05 12:27:07
【问题描述】:
APK 文件中有一个interface IA 类。我创建了一个包含 IA 的 implementation MA 的 jar。该罐子有一个Global class 和B class。 jar 是使用数据目录中的 Dexclassloader 动态加载的。
interface IA {
test();
}
class Global {
IA instance; //refer to MA instance.
}
class B {
....
instance.test() ; // throw NoSuchMethodError
....
}
但是通过反射调用实例的测试方法是可以的。
为什么?当然,我不熟悉 Classloader 或 DexClassloader 的一些原理。有人可以为我解释吗?谢谢
【问题讨论】:
-
你还没有实现这个方法。接口只有方法的声明。顺便说一句,你没有使用反射。
-
@Batty Instance是在apk类中实现接口IA的MA实例
标签: java android classloader dynamic-loading dexclassloader