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

标签 java android gradle android-gradle-plugin couchbase-lite

我正在编写一个 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.* 的类都被排除在缩小和混淆之外。

关于java - 仅对某些包或我的文件启用 minifyEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698526/

相关文章:

java - 菜单监听器不工作

Java - 合并排序数组

java - 在纹理中切割一个半透明的正方形

android - 带有 CheckBox 的列表项不可点击

android - 在某些三星设备上 Intent.putExtra() 崩溃

testing - 如何在 Gradle Liquibase 插件的 runList 字段中包含多个事件?

android - 无法解析com.android.support:support-v4:23.2.1

java - Android Studio - SQL 数据库/表未创建 - 应用程序无法打开

android - 更改字体重新启动 Activity

scala - 无法使用 Gradle 运行 Scalatest