如何在Android上为Room库设置proguard规则

时间:2018-12-10 06:52:56

标签: java android android-room android-proguard

在我的应用程序中,我想使用Room库来使用数据库,最后要生成APK ,我启用缩小选项( proguard )在Build.Gradle中。

我使用以下版本的Room库:

implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"

我在保护规则中写了以下代码:

-dontwarn class android.arch.persistence.room.paging.LimitOffsetDataSource
-dontwarn interface android.arch.persistence.room.paging.LimitOffsetDataSource
-dontwarn class android.arch.util.paging.CountedDataSource
-dontwarn interface android.arch.util.paging.CountedDataSource

但是在生成APK时,我在Build标签中显示以下错误:

Unknown option 'android.arch.persistence.room.paging.LimitOffsetDataSource' in line 39 of file '/Volumes/M/Test Projects/MyApp/app/proguard-rules.pro'

显示此行错误:

-dontwarn class android.arch.persistence.room.paging.LimitOffsetDataSource

如何解决此问题?

2 个答案:

答案 0 :(得分:2)

如果您使用的是androidx

-keep class * extends androidx.room.RoomDatabase
-dontwarn androidx.room.paging.**

答案 1 :(得分:0)

在proguard文件的keep部分添加以下行。

-dontwarn android.arch.util.paging.CountedDataSource
-dontwarn android.arch.persistence.room.paging.LimitOffsetDataSource