Android Proguard混淆配置问题

问题描述 投票:0回答:1

我在为我的 Android(Java) 应用程序创建混淆/缩小/优化的 apk 时遇到问题。由于我是 proguard 的新手,我首先尝试使用基本配置完成 apk,我还没有向 proguard-rules.pro 添加任何内容,到目前为止我所做的就是将 minifyEnabled 设置为 true,如下所示:

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

因此,当我在模拟器设备上运行应用程序时,构建过程成功,apk 变得非常小,它无法在设备上正常启动,但我想这是预期的,因为我没有向 proguard-rules 添加任何规则。轮廓。但是,当我尝试手动构建 APK 时,出现了一个问题。我收到以下错误:

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in missing_rules.txt.

所以我将规则添加到 proguard-rules.pro,现在看起来像这样:

-dontwarn org.kxml2.io.KXmlParser,org.kxml2.io.KXmlSerializer

但是当我尝试再次构建它时,我得到了相同的错误,并且在missing_rules.txt中具有完全相同的规则。

现在更重要的是,我发现了为模拟器设备构建的 apk,虽然现在它小得多,但当我用 APK 分析器打开它时,我仍然可以在纯文本中找到我自己的类以及它们的方法和所有内容。我以为默认情况下会启用混淆?这两个问题的原因可能是什么?是否有关于如何正确完成配置的综合指南?我在网上搜索了很多,但来源相当过时,到目前为止还找不到有效的解决方案。我正在使用 Android Studio 2023.3.1 和 AGP 8.2.2 和 Gradle 8.2

android proguard obfuscation android-obfuscation
1个回答
0
投票

我将 androidx.test.runner 和 androidx.test.rules 库分别更新到 1.5.2 和 1.5.0 后,缺失类和 Missing_rules.txt 的问题得到了修复。

代码未被混淆的问题是我必须使用“生成签名包/APK”操作。到目前为止,我只尝试使用“构建捆绑包/APK”。基本上,当我创建一个“发布”APK 时,它就会被混淆。

© www.soinside.com 2019 - 2024. All rights reserved.