8

Proguard açıkken Android uygulamasının sürüm oluşturulmasını test etmeye çalışıyorum. Sürüm kuralları dosyasında bulunan test bağımlılıkları için ek Proguard kuralları dosyası oluşturdum.Test sürümü ve Android uygulamasının proguarded sürümü - NoSuchMethodError

-keep class android.test.** { *; } 
-dontwarn android.test.** 

# Reuse the release ProGuard mapping 
-applymapping proguard.map 
-dontshrink 
-dontoptimize 

Her şey iyi derler ama zamanında başarısız olur.

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) 
Ben test için Espresso kullanıyorum

, enstrümantasyon koşucu

defaultConfig { 
    testApplicationId 'package.name.test' 
    testInstrumentationRunner 'com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner' 
} 

build.gradle proguarded sürüm oluşturma için testler herhangi bir şans tanımlanır? Mayıs ayından itibaren topic'u buldum ve imkansız gibi görünüyor. Benim için yanlış Proguard yapılandırması (eksik yöntem) gibi görünüyor, ancak -keep class android.test.** { *; } hattı böyle bir sorunu düzeltmelidir. Bir şey mi eksik?

+0

başka soru sorulabilir Cevabımı kullanmak deneyin umut olur http://stackoverflow.com/a/15477898/1665964 –

cevap

0

yardımına çalışıyorum Efendim. bunun yerine

-keep class android.test.** { *; } 
-dontwarn android.test.** 

ait

aslında bu sert "tahminim-a-kod" un kendisine

-keep class android.test.** { *; } 
-keep class junit.** { *; } 
-dontwarn android.test.** 
-dontwarn junit.** 

bu eklemek o

+0

Hayır, bu bir sorun değil. Android.test.AndroidTestRunner.addTestListener'de 'NoSuchMethodError' ile çalışma zamanında başarısız olur, böylece çözümünüz sorunu çözmez. – tomrozb