如何在 android 中使用 ProGuard 和 OrmLite

Posted

技术标签:

【中文标题】如何在 android 中使用 ProGuard 和 OrmLite【英文标题】:How to use ProGuard with OrmLite in android 【发布时间】:2014-09-28 02:51:05 【问题描述】:

我在我的 android 项目中使用 OrmLite 4.48。 我将这些行添加到我的 proguard.cfg 文件中:

-dontnote
-libraryjars libs/ormlite-android-4.48.jar
-libraryjars libs/ormlite-core-4.48.jar


-keepattributes Signature
-keep class ir.hnfadak.simineh.database.**  *; 

-keep class com.j256.**
-keepclassmembers class com.j256.**  *; 
-keep enum com.j256.**
-keepclassmembers enum com.j256.**  *; 
-keep interface com.j256.**
-keepclassmembers interface com.j256.**  *; 

-keepclassmembers class * 
  public <init>(android.content.Context);
 

-keepattributes *Annotation*

但是当我想获得签名的 APK 时,我收到了这些警告:

ProGuard:[Simineh] 警告: com.j256.ormlite.android.compat.JellyBeanApiCompatibility:找不到 引用的方法'android.database.Cursor rawQuery(java.lang.String,java.lang.String[],android.os.CancellationSignal)' 在类 android.database.sqlite.SQLiteDatabase ProGuard:[Simineh] 警告: com.j256.ormlite.android.compat.JellyBeanApiCompatibility$JellyBeanCancellationHook: 找不到引用的类 android.os.CancellationSignal

谁能帮帮我?

【问题讨论】:

【参考方案1】:

添加以下行解决了我的问题

-ignorewarnings

:D

【讨论】:

以上是关于如何在 android 中使用 ProGuard 和 OrmLite的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中使用 Proguard 混淆 Android 库(.jar 文件)

如何在 Android 中使用 Proguard 不混淆接口方法及其参数?

如何在 android studio gradle 中降级 proguard 版本?

如何在android studio中启用proguard? [复制]

如何在android studio中启用proguard? [重复]

在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免受逆向工程的影响?