【发布时间】:2012-04-08 19:59:57
【问题描述】:
我应该如何在 Android 上将 proguard 与 ormlite 库一起使用?
试试这个:
-keep class com.j256.**
-keepclassmembers class com.j256.**
-keep enum com.j256.**
-keepclassmembers enum com.j256.**
-keep interface com.j256.**
-keepclassmembers interface com.j256.**
但我明白了:
03-23 20:23:54.518: E/AndroidRuntime(3032): java.lang.RuntimeException: 无法启动活动 ComponentInfo{cz.eman.android.cepro/cz.eman.android.cepro.activity.StationsOverviewActivity }: java.lang.IllegalStateException: 找不到为帮助类类 kb 接受 Context 参数的构造函数
我也尝试添加这个:
-keepclassmembers class * { public <init>(android.content.Context); }
但是我得到了另一个班级成员的错误。
【问题讨论】:
-
我的回答有帮助吗?如果是这样,请接受它。如果不是,请提供您自己的答案。
-
找到答案请贴出来或标记为正确答案可以帮助其他人找到答案
-
你最终是如何解决这个问题的?
-
我通过执行以下所有操作(来自 Gray 和 German 的答案)来修复它,之后我还必须在我的 proguard 中添加我所有的数据库内容对象(带有一个或多个 @DatabaseField)像这样配置: -keep class com.myapp.model.** -keepclassmembers class com.myapp.model.** { *; }
-
坦白你救了我的生命……
标签: android optimization obfuscation proguard ormlite