Android数据绑定和Guava之间的冲突导致ProGuard错误

前端之家收集整理的这篇文章主要介绍了Android数据绑定和Guava之间的冲突导致ProGuard错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在启用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之间的冲突引起的.我的应用依赖于Guava(com.google.guava:guava:18.0)并启用了数据绑定. appears数据绑定对Guava有某种内部依赖性,这导致ProGuard出现问题.

我正在运行最新的测试版gradle(2.0.0-beta5),所以问题可能与此有关.

解决方法

所以我能够通过将此添加到proguard来构建:

-dontwarn android.databinding.**
-keep class android.databinding.** {*; }

我不认为完全是正确的解决方案,只是忽略这些类,但我认为我们可能只需等待谷歌的更新.在将它添加到proguard之后我能够构建一个版本apk但它崩溃了,我认为它仍然是proguard但在我的代码中发现了其他错误.

猜你在找的Android相关文章