我有一个在调试模式下运行良好的Android应用程序,但在发布模式下有一些内存泄漏。基本上,它非常慢,并且在logcat中重复出现以下行:
dalvikvm D WAIT_FOR_CONCURRENT_GC blocked 91ms
如果我没有混淆,不收缩并且不在proguard中进行优化,那么发布工作正常。如果我做其中一个,我有这个错误。我使用以下几行:
-dontshrink
-dontoptimize
-dontobfuscate
我正在使用多个使用某些本机(即JNI)代码的外部库,我不知道可能出现什么问题。
答案 0 :(得分:3)
你可以告诉Proguard不要干扰,我的意思是在proguard配置文件中使用这样的指令来混淆,包和子包:
-keep class com.google.** { *; }
-keep class okio.** { *; }
您还可以使用以下命令告诉它使用特定注释注释类:
-keep class com.your.annotation
-keep @com.your.annotation class * { *; }
第一个keep指令确保它不会删除注释本身,第二个保留任何带注释的注释。
可以找到包含其他示例的完整Proguard手册here。