【问题标题】:proguard-rules.pro does not seem to work with R8proguard-rules.pro 似乎不适用于 R8
【发布时间】:2019-09-12 04:29:34
【问题描述】:

我今天早些时候将我的 Android Studio 升级到了 3.4,这是我第一次使用默认的压缩器 R8。我将一个库项目的proguard-project.txt 的内容复制到了它的proguard-rules.proproguard-project.txt 完美地为这个项目工作,该项目生成一个供其他应用项目使用的 aar 文件。

文件proguard-rules.pro 似乎没有被使用。该项目在其build.gradle 中有以下内容:

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

proguard-rules.pro 有以下内容:

# Preserve all public classes, and their public and protected fields and methods.
-keep public class * {
    public protected *;
}

根本不保留公共方法的名称:

任何人都可以提供有关如何解决此问题的提示吗?

【问题讨论】:

    标签: android android-proguard android-r8


    【解决方案1】:

    将此行添加到gradle.properties

    android.enableR8 = true
    

    并在您的proguard-rules.pro 中尝试以下代码

    -keep public class ** {
        public *;
        protected *;
    
    }
    

    编辑#1

    在此处查看如何将 Proguard 迁移到 R8:Android/java: Transition / Migration from ProGuard to R8?

    【讨论】:

    • 非常感谢。民众 *;受保护的*;做到了。其他的似乎是不必要的。
    • 我们需要第一行来启用 R8 吗?我以为在新版本的android studio中是默认开启的。
    • @NikosHidalgo 不。我没有第一行,现在工作正常。我相信你是对的 - 从 Android Studio 3.4 开始默认启用它。
    • 这是一个错误,请参阅issuetracker.google.com/131712625。该问题已修复,将成为 Android Studio 3.4.1 的一部分。
    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 2021-12-30
    • 2020-04-04
    • 2023-04-06
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多