【问题标题】:IllegalAccessError running android instrumentation testsIllegalAccessError 运行 android 仪器测试
【发布时间】:2014-04-04 05:58:11
【问题描述】:

我们在运行我们的 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 plugin 19.0.1,这个问题只在运行仪器测试时出现。混淆的应用程序运行良好。

以前有没有人遇到过类似的问题,或者有没有办法阻止仪器测试 apk 一起被混淆?目前,我们针对应用的混淆版本运行仪器测试,针对非混淆版本运行它们不是我们的选择。

【问题讨论】:

    标签: java android proguard android-gradle-plugin


    【解决方案1】:

    将测试源代码从 instrumentTest 重命名为 androidTest 解决了这个问题。从插件 0.9.0 开始,默认的仪器测试源根是 androidTest。似乎保留原始名称并将插件配置为使用原始名称导致了这些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 2017-04-01
      相关资源
      最近更新 更多