ProGuard显然没有运行

时间:2018-01-30 15:00:52

标签: android android-proguard

我尝试用proguard进行一些代码优化,但直到现在还没有成功。 关于SO的类似问题的所有答案都没有帮助我,谷歌提供的关于proguard的文档也没有用。

我做了什么:

我在app-level的build.gradle中有以下内容:

buildTypes {
    debug {
        testCoverageEnabled = true
        debuggable true
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debuggable.initWith(buildTypes.debug)
    debuggable {
        testCoverageEnabled = false
        debuggable true
    }
}

在我的proguard-rules.pro中,我添加了这个:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

我没有更改proguard-android-optimize.txt文件中的任何内容。

现在,当我构建一个签名版本的apk(Android Studio 3.0)时,反编译的结果显示我的代码中没有任何更改,并且没有可见的proguard输出(不在app / build / intermediates-folder中,而不是在gradle控制台)。我确信我错过了一些非常简单但我无法理解的事情。

还有什么我必须配置才能让proguard运行吗?

1 个答案:

答案 0 :(得分:0)

好吧,好像,我似乎是不记得的受害者"你是否试图将其关闭再打开?"

今天我启动了我的机器,打开了Android Studio,一切都像魅力一样。看起来在Android Studio,Gradle,ProGuard中有一些缓存的东西,所以我之前的错误尝试使一切都处于不稳定的状态,没有任何效果。

因此,如果有人有类似的设置(带有Gradle 4.1的Android Studio 3.0),并且具有上述确切的配置,那么事情就不起作用了:

  

"尝试将其关闭再打开"。

:-)

(而不仅仅是Android Studio,因为这是我昨天所做的,没有成功。)