在启用ProGuard的情况下编译我的Android应用时出现以下错误。
Warning: library class android.databinding.tool.util.SourceCodeEscapers$1
extends or implements program class com.google.common.escape.CharEscaper
Warning: library class android.databinding.tool.util.SourceCodeEscapers$JavaCharEscaper
extends or implements program class com.google.common.escape.ArrayBasedCharEscaper
Warning: library class android.databinding.tool.util.SourceCodeEscapers$JavaCharEscaperWithOctal
extends or implements program class com.google.common.escape.ArrayBasedCharEscaper
Warning: there were 3 instances of library classes depending on program classes.
You must avoid such dependencies, since the program classes will
be processed, while the library classes will remain unchanged.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)
这似乎是由Android data binding和番石榴之间的冲突引起的。我的应用程序依赖于Guava(com.google.guava:guava:18.0)并启用了数据绑定。它appears数据绑定对Guava有某种内部依赖,导致ProGuard出现问题。
我正在运行最新的gradle测试版(2.0.0-beta5),所以问题可能与此有关。
答案 0 :(得分:13)
所以我可以通过将它添加到proguard来构建:
-dontwarn android.databinding.**
-keep class android.databinding.** { *; }
我认为完全没有理由忽略这些课程,但我认为我们可能只需要等待谷歌的更新。将它添加到proguard之后我能够构建一个版本apk但是它崩溃了,我认为它仍然是proguard但在我的代码中发现了其他错误。