A类引用B类。它们位于同一个包中。因此A不会导入B.并且不会出现编译错误。但是当我得到A类Object并调用ClassA.getDeclaredMethods时,会发生异常:
java.lang.NoClassDefFoundError:xxx.xxx.B?
但是当我在A中导入B类的父接口并且同时将A&#39的方法返回类型从B更改为B的父接口时。没关系。
我尝试了两个Android设备,但错误都发生了。
为什么呢?
PS:我从日志中得到了这个原因
04-21 21:31:25.005 W/dalvikvm(21707): Class resolved by unexpected DEX: Lxxx/xxxx/xxxx/methods/FieldsConfig;(0x42a18bd8):0x76e66000 ref [Lxxx/xxxx/xxxx/ITelephonyManagerInterface$IFieldsConfig;] Lxxx/xxxx/xxxx/ITelephonyManagerInterface$IFieldsConfig;(0x42a18bd8):0x76d17000
04-21 21:31:25.005 W/dalvikvm(21707): (Lxxx/xxxx/xxxx/methods/FieldsConfig; had used a different Lxxx/xxxx/xxxx/ITelephonyManagerInterface$IFieldsConfig; during pre-verification)
04-21 21:31:25.005 W/dalvikvm(21707): Link of class 'Lxxx/xxxx/xxxx/methods/FieldsConfig;' failed
我从两个dex加载一个类。
compile project(":base")
androidTestCompile project(':AAAA') // only androidTest
androidTestCompile project(':BBBB')
androidTestCompile project(':CCCC') {
exclude project(":base") //how I exclude one project??
}//only androidTest
现在又来了一个问题。 如何从androidTestCompile项目中排除项目(":base")(':CCCC')?