2016-04-05 4 views
8

私はAutoValueの使用を開始したばかりですが、プロガードと動作させることはできません。私はこのように見えるの周り6000+警告オートバリュー付きProguard

Warning:autovalue.shaded.com.google.common.auto.common.MoreElements$1: can't find superclass or interface javax.lang.model.util.SimpleElementVisitor6

実際のエラーを持って、これを示しています...

Error:Execution failed for task ':transformClassesAndResourcesWithProguardForDebug'. java.io.IOException: Please correct the above warnings first.

がどのように私はこの問題を解決することができますか?

+0

解決方法はありましたか? – AndroidGecko

答えて

12

修正

これは、あなたのプロジェクトのcompile依存関係としてライブラリを追加しているので、何が起こっています。このような何か:

dependencies { 
    provided 'com.google.auto.value:auto-value:1.2' 
} 

注:providedの構成は、AndroidのGradleプラグインで利用できるようになる

dependencies { 
    compile 'com.google.auto.value:auto-value:1.2' 
} 

あなたはライブラリにprovided依存関係を確認する必要があります。純粋なJavaライブラリモジュールでAutoValueを使用している場合は、Gradle 2.12で追加されたcompileOnly設定を使用してください。

説明

自動入力値は、あなたのためのコードを生成するライブラリです。ライブラリ自体とのやりとりは、RetentionPolicy.SOURCE@AutoValueアノテーションを使用する必要があります。つまり、ソースコードでのみ使用でき、コンパイル済みコードでは使用できません。

これは、コンパイルされたコードがAutoValueライブラリコードに何も接続していないことを意味します。したがって、あなたのコードでコンパイルする必要はありません。これはProGuardが実行するコードです。

+1

'compileOnly'を使い続けても、同じエラーが出ます。 –