Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Proguard不收缩试验APK_Android_Testing_Proguard_Android Proguard - Fatal编程技术网

Android Proguard不收缩试验APK

Android Proguard不收缩试验APK,android,testing,proguard,android-proguard,Android,Testing,Proguard,Android Proguard,我正在使用Proguard收缩调试apk并测试apk buildTypes { debug { applicationIdSuffix ".debug" debuggable true signingConfig signingConfigs.debug minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'

我正在使用Proguard收缩调试apk并测试apk

buildTypes {
    debug {
        applicationIdSuffix ".debug"
        debuggable true
        signingConfig signingConfigs.debug
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFile 'proguard-test-rules.pro'
    }
当我启用minify并运行集成测试时,debug apk方法计数会减少,但测试apk不会减少

我知道Proguard正在做一些事情,因为如果我在Proguard test rules.pro中没有正确的规则,我会看到警告,并且测试apk不会编译

发生了什么事?为什么我的测试apk没有缩小?仅供参考,以下是我的.pro文件:

proguard-rules.pro:

# general
-dontobfuscate

# for Retrofit2
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

# for RetroLambda
-dontwarn java.lang.invoke.*

# for Saripaar
-keep class com.mobsandgeeks.saripaar.** {*;}
-keep @com.mobsandgeeks.saripaar.annotation.ValidateUsing class * {*;}

# for OKIO
-dontwarn okio.**

# for RxJava
-dontwarn sun.misc.Unsafe

# for android.content.res classes
-dontwarn org.xmlpull.v1.**

# for Butterknife
-dontwarn rx.functions.Func1
proguard-test-rules.pro

-include proguard-rules.pro

-dontobfuscate
-dontwarn

-dontwarn org.hamcrest.**
-dontwarn android.test.**

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

-keep class junit.runner.** { *; }
-keep class junit.framework.** { *; }
-keep class org.jmock.core.** { *; }
-keep class org.easymock.** { *; }


-dontwarn com.fasterxml.jackson.databind.**
-dontwarn com.fasterxml.jackson.core.**
-dontwarn com.fasterxml.jackson.annotation.**
-dontwarn org.ietf.jgss.**
-dontwarn javax.xml.**
-dontwarn javax.swing.**
-dontwarn javax.lang.**
-dontwarn java.nio.**
-dontwarn java.lang.**
-dontwarn org.w3c.dom.traversal.**
-dontwarn org.eclipse.jetty.**
-dontwarn java.beans.**
-dontwarn org.slf4j.**
-dontwarn org.apache.http.**

ProGuard仅在以发布模式构建应用程序时运行,因此在以调试模式或测试模式构建应用程序时不必处理模糊代码。在调试模式或测试模式下构建不会调用ProGuard,因为这会使调试更加繁琐

ProGuard仅在以发布模式构建应用程序时运行,因此在以调试模式或测试模式构建应用程序时不必处理模糊代码。以调试模式或测试模式构建不会调用ProGuard,因为这会使调试更加繁琐

正如这里所解释的,这是一个过时的答案。此外,关于这一点的实际文档直接反驳了您的说法。“请注意,代码收缩会减慢构建时间,因此,如果可能的话,您应该避免在调试构建中使用它。”最后,正如我在问题中所说,Proguard在调试apk中工作良好,但在测试apk中工作不好。这是一个过时的答案,如下所述。此外,关于这一点的实际文档直接反驳了您的说法。“请注意,代码收缩会减慢构建时间,因此如果可能的话,您应该避免在调试构建中使用它。”最后,正如我在问题中所说,Proguard在调试apk中工作良好,但在测试apk中工作不好。您解决过这个问题吗?我在试图减少测试apk的方法计数时遇到了同样的问题。@roko不,这是我提出的问题:你解决过这个问题吗?我在尝试减少测试apk的方法计数时遇到了相同的问题。@roko否,这是我打开的问题: