运行我们的android检测测试时遇到一个奇怪的问题。出于某种原因,我们使用的库项目中的jar似乎在检测测试包装期间被重新混淆,导致我们在访问此jar中的类时出现以下错误
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
我们的结构看起来像这样
+library
-- libs/obfuscated.jar
+app
-- instrumentTest
-- src/main/java/etc
-- build.gradle
-- compile dependency to library (which contains obfuscated jar)
我们正在使用gradle 1.11,android gradle build tools插件19.0.1,这个问题只在运行检测测试时才会出现。混淆的应用程序运行正常。
之前有没有人看到类似的问题,或者有没有办法阻止仪器测试apk被混淆在一起?目前,我们针对应用程序的模糊版本运行我们的检测测试,针对非模糊版本运行它们对我们来说不是一种选择。
答案 0 :(得分:1)
将测试src根目录从 instrumentTest 重命名为 androidTest 解决了这个问题。从插件0.9.0开始,默认的仪器测试源根是androidTest。看来保留原始名称,并将插件配置为使用原始名称,会导致这些问题。