isMinifyEnabled()已弃用.有什么选择?

Sai*_*Sai 8 android gradle android-build android-gradle-plugin android-gradle-3.0

我使用下面的代码显然根据产品风格自动生成pro guard映射文件.

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            applicationVariants.all { variant ->
                if (variant.getBuildType().isMinifyEnabled()) {
                    variant.assemble.doLast {
                        copy {
                            from variant.mappingFile
                            into "${rootDir}/proguardTools"
                            rename { String fileName ->
                                "mapping-${variant.name}.txt"
                            }
                        }
                    }
                }
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

将android studio升级到3.0之后,它会显示一条警告说isMinifyEnabled()已弃用,我无法找到任何解决方案或替代方案isMinifyEnabled().有任何帮助提前感谢吗?

在此输入图像描述

azi*_*ian 3

来源来看Android Gradle Plugin 3.0的

\n\n
\n\n    /**\n     * Returns whether minification is enabled for this build type.\n     *\n     * @return true if minification is enabled.\n     * @deprecated remember that this flag means that some "ProGuard-like" tool has run, it does not\n     *     say if the tool was used to obfuscate and/or minify. In build system code this\n     *     information is available elsewhere and should be used instead of this method.\n     */\n    @Deprecated\n    boolean isMinifyEnabled();\n \n
\n\n

该文档含糊不清,没有直接告诉使用什么。\n在指责中我们可以看到,是Micha\xc5\x82 Bendowski执行了这些更改,我已要求他帮助解决这个问题在推特上。这是回复:

\n\n

在此输入图像描述

\n\n

另外,我在最新提交中看不到@Deprecated注释(在撰写本文时),这意味着该 API不是android-8.0.0_r34

\n\n

作为修复,您可以抑制该警告,将此行放在前面if语句之前:

\n\n
\n\n    //noinspection GrDeprecatedAPIUsage\n    if (variant.getBuildType().isMinifyEnabled()) {\n        ...\n    }\n \n
\n