仅对某些包或我的文件启用 minifyEnabled

minifyEnabled for certain package or my files only

我正在编写一个 android 项目,并尝试编译它以供发布。 在我的项目中,我使用了 3rd 方项目,例如 couchbase-lite。

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

我想在 gradle 中使用 minifyEnabled=true,但签名的 APK 无法 运行, 这似乎是 couchbase 使用反射而未能找到其中一个属性的问题...

  1. 有没有办法将 gradle 配置为仅在我的项目文件上启用 minifyEnabled?
  2. 我可以将它配置为仅对某些包启用 minifyEnabled 吗?

谢谢!

您可以使用 Proguard 配置文件中的 -keep 规则排除正在使用反射并可能在 运行 时引起问题的 类。

-keep public class com.example.somepackage.*

使用上面的规则,所有匹配 public class com.example.somepackage.* 的 类 都被排除在缩小和混淆之外。