我正试图在Proguard开启的情况下测试
Android应用的发布版本.我已经为测试依赖项创建了额外的Proguard规则文件,该文件包含在发布规则文件中.
-keep class android.test.** { *; } -dontwarn android.test.** # Reuse the release ProGuard mapping -applymapping proguard.map -dontshrink -dontoptimize
一切都编译好但在运行时失败.
java.lang.NoSuchMethodError: android.test.AndroidTestRunner.addTestListener at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.start(ProGuard:135) at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner$BridgeTestRunner.start(ProGuard:249) at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:389) at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.onCreate(ProGuard:114) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4702) at android.app.ActivityThread.access$1600(ActivityThread.java:172) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5586) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(Native Method)
我正在使用Espresso进行测试,仪器运行器在build.gradle中定义
defaultConfig { testApplicationId 'package.name.test' testInstrumentationRunner 'com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner' }
有没有机会为proguarded发布版本运行测试?我从5月份发现topic回来了,看起来这是不可能的.对我来说,看起来它只是错误的Proguard配置(缺少方法),但行–keep类android.test.** {*;应该解决这个问题.我错过了什么吗?