Tôi đang cố gắng thử nghiệm bản phát hành ứng dụng Android với Proguard được bật. Tôi đã tạo tệp quy tắc Proguard bổ sung cho các phụ thuộc thử nghiệm được bao gồm trong tệp quy tắc phát hành.Phiên bản thử nghiệm và phiên bản ứng dụng Android được bảo vệ - NoSuchMethodError
-keep class android.test.** { *; }
-dontwarn android.test.**
# Reuse the release ProGuard mapping
-applymapping proguard.map
-dontshrink
-dontoptimize
Mọi thứ biên soạn tốt nhưng không thành công khi chạy.
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)
Tôi đang sử dụng Espresso để thử nghiệm, các Á hậu bị đo đạc được định nghĩa trong build.gradle
defaultConfig {
testApplicationId 'package.name.test'
testInstrumentationRunner 'com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner'
}
Bất kỳ cơ hội để chạy thử nghiệm cho phiên bản build proguarded? Tôi đã tìm thấy topic từ tháng 5 và có vẻ như không thể. Đối với tôi có vẻ như nó chỉ là cấu hình Proguard sai (thiếu phương pháp), nhưng dòng -keep class android.test.** { *; }
nên khắc phục vấn đề như vậy. Tui bỏ lỡ điều gì vậy?
Hãy thử sử dụng câu trả lời của tôi trong một câu hỏi khác http://stackoverflow.com/a/15477898/1665964 –