你好,请教下。我代码混淆后,运行程序崩溃。查看了下数据库,表结构字段成了混淆后的“a、e、f、b、g、d”之类的了。
我用了下面方法,防止被混淆,不起作用呢,谁知道问题出在哪里?
-libraryjars libs/litepal-1.1.1.jar
-dontwarn org.litepal.*
-keep class org.litepal.** { *; }
-keep enum org.litepal.**
-keep interface org.litepal.** { *; }
-keep public class * extends org.litepal.**
-keepattributes *Annotation*
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * extends org.litepal.crud.DataSupport{
private * ;
}
————————更新————————————
问题已解决:
将
-keepclassmembers class * extends org.litepal.crud.DataSupport{
private * ;
}
替换成下方的:
-keepclassmembers class * extends org.litepal.crud.DataSupport{*;}
这两个的区别是上面的只针对继承DataSupport类的private成员变量不混淆。但是litepal是通过get set 方法对数据进行操作的。所以混淆出来的会有问题。
用下方的混淆模式,表示继承DataSupport类的所有东西都不混淆。