2016-02-18 7 views
6

ProGuardを有効にしてAndroidアプリをコンパイルする際に次のエラーが発生します。AndroidデータバインディングとGuavaとの競合によりProGuardエラーが発生する

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)に依存し、データバインディングが有効になっています。データのバインディングにGuavaに対する内部的な依存関係があり、ProGuardに問題を引き起こしていることがappearsです。

私はgradle(2.0.0-beta5)の最新ベータ版を実行しているので、問題はそれに関連している可能性があります。

+1

私はまったく同じ問題を抱えています!!!!上記と同じログ出力で、同じバージョンのgradleを使用します。とても悔しい –

答えて

11

だから私は、ProGuardのにこれを追加することによって構築することができました:私は考えていない -dontwarn android.databinding.** -keep class android.databinding.** { *; }

は完全にちょうどそれらのクラスを無視するように適切なソリューションですが、私たちはただの更新を待つ必要がかもしれないと思いますGoogleから。 proguardに追加した後、私はリリースapkを構築することができたが、クラッシュしていた、私はそれがまだproguardだと思ったが、私のコードで他のエラーを見つけた。

+2

私はProGuardファイルに '-dontwarn android.databinding.tool.util。**'を追加するだけで逃げました。 – Benjamin

関連する問題