代码混淆时注意事项,防止注解被删掉

昨天在混淆代码生成apk时,一直无法正常打开,看错误log,发现是由于生成数据库语句有误(本项目生成数据库利用注解来实现)。
开始还以为是没混淆到了,直到后来没办法了,反翻译瞅瞅,一看真TM坑爸,注解全没了。我明明加上了这一段:
-keep class com.xxxx.** { *; }


反翻译看到该类也没有被混淆,只是注解全没了而已,可以说明的是,这段咱们常用的混淆语句对注解起不到保护作用。

google了一大段时间,终于让哥找到真相了,android在打包的时候,应用程序会进行代码优化,优化的过程就把注解给去掉了。
在前面加上这一句,注解就可以保留了:
-keepattributes *Annotation*

你可能感兴趣的:(android)