tom*_*ozb 8 android proguard android-testing android-gradle-plugin android-espresso
我正在尝试使用Proguard打开测试Android应用的发布版本.我为测试依赖项创建了额外的Proguard规则文件,该文件包含在发布规则文件中.
-keep class android.test.** { *; }
-dontwarn android.test.**
# Reuse the release ProGuard mapping
-applymapping proguard.map
-dontshrink
-dontoptimize
Run Code Online (Sandbox Code Playgroud)
一切都编译好但在运行时失败.
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)
Run Code Online (Sandbox Code Playgroud)
我正在使用Espresso进行测试,仪表运行器的定义是 build.gradle
defaultConfig {
testApplicationId 'package.name.test'
testInstrumentationRunner 'com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner'
}
Run Code Online (Sandbox Code Playgroud)
有没有机会为proguarded发布版本运行测试?我从五月开始找到主题,看起来这是不可能的.对我来说,看起来它只是错误的Proguard配置(缺少方法),但该线-keep class android.test.** { *; }应该解决这个问题.我错过了什么吗?
我正在努力帮助先生。
而不是那个
-keep class android.test.** { *; }
-dontwarn android.test.**
Run Code Online (Sandbox Code Playgroud)
添加这个到它
-keep class android.test.** { *; }
-keep class junit.** { *; }
-dontwarn android.test.**
-dontwarn junit.**
Run Code Online (Sandbox Code Playgroud)
实际上这是一个很难的“猜测代码”希望它有帮助
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |