Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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/opencv/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仅用于禁用日志记录和缩减资源_Android_Android Gradle Plugin_Proguard_Android Proguard - Fatal编程技术网

Android 使用Proguard仅用于禁用日志记录和缩减资源

Android 使用Proguard仅用于禁用日志记录和缩减资源,android,android-gradle-plugin,proguard,android-proguard,Android,Android Gradle Plugin,Proguard,Android Proguard,build.gradle: buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConf

build.gradle:

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.SginConfig
        }
}
我不希望Proguard优化或混淆我的代码,因为它给我带来了很多麻烦。我只想删除日志调用并允许收缩未使用的资源

proguard规则。pro:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}
只有当我将getDefaultProguardFile从
('proguard-android.txt')
设置为
('proguard-android-optimize.txt')时,才能将上述代码添加到
proguard rules.pro
中。

但是通过将其设置为
proguard android optimize.txt
将启用优化标志,这在我的例子中是不需要的


那么,在Proguard不对我的代码进行任何缩小或优化的情况下,我怎样才能禁用日志记录和收缩资源呢?

我认为您仍然可以尝试在Proguard配置文件中使用类似于
-dontobfuscate
&
dontshrink
的选项。这些选项不会缩小和混淆代码。

您应该能够通过仅启用假定效果取决于的特定Proguard优化来实现这一点。它所依赖的两个方面是:

  • 代码/删除/简单:基于简单的控制流分析删除死代码
  • 代码/删除/高级:基于控制流分析和数据流分析删除死代码
您可以阅读有关不同优化选项的更多信息。因此,类似这样的方法应该有效:

proguard rules.pro

-optimizations code/removal/simple,code/removal/advanced
-dontobfuscate
-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}
build.gradle

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.SginConfig
        }
}

你不能。
缩小
优化
的一部分<代码>假设效果是其中的一部分。