2015-10-21 7 views
7

Findbugsプラグインを3.0.1までアップデートした後、Android Studioでマルチモジュールプロジェクトをコンパイルできません。また、FindBugs注釈を使用する場合は"com.google.code.findbugs:annotations:3.0.1"依存関係を使用します(例:@SuppressFBWarnings)。FindBugsを3.0.1にアップデートした後にAndroidプロジェクトをコンパイルする際にエラーが発生する

プロジェクト組み立てながら、私はエラーを以下の取得:

Execution failed for task ':presentation:packageAllDevelopDebugClassesForMultiDex'. 
> java.util.zip.ZipException: duplicate entry: javax/annotation/CheckForNull.class 

私はそれを修正することができますどのように?

+0

に私のコードを回しモジュールJSR305を除外するには

compile project(path: ':shareLib') 

を持っていました(https://github.com/ethankhall/scripts/blob/master/gradle/find-file.gradle)を使用して、CheckForNullの重複定義がどこから来るのかを見つけることができます。 JsonIgnoreをCheckForNullに置き換えます。 – Ethan

答えて

5

私はこの問題を解決しました。その原因は、"com.google.code.findbugs:annotations:3.0.1"の追加の依存関係('com.google.code.findbugs:jsr305:3.0.1'および'net.jcip:jcip-annotations:1.0')に追加されました。これを修正するには、推移的な依存関係を除外する必要があります。

置き換えます

dependencies { 
    compile ("com.google.code.findbugs:annotations:3.0.1") { 
     exclude module: 'jsr305' 
     exclude module: 'jcip-annotations' 
    } 
} 

または

dependencies { 
    compile ("com.google.code.findbugs:annotations:3.0.1") { 
     transitive = false 
    } 
} 
+1

私は上記のエラーが出ますが、この答えでは解決できません:(解決策1も2つも混在していません) 'com.google.code.findbugs:annotations:2.0.3'を使ってもエラーが出ました。 2.2.1から2.9へのグラデーションから2.3に戻って、AS 1.5の正しいバージョンになるよう継ぎ目をつけてください。FindBug Suppressionの1行を追加するには: – Giszmo

+1

私はあなたがgradleタスク "dependencies"との依存関係の衝突をチェックする必要があると思います。 findbugs依存関係ツリーに注意を払う – ultraon

+1

"依存関係ツリー"とは、../../gradlew -q依存関係の出力を意味します。私たちのケースでは、 'exclude group:' com.google。 code.findbugs'' findbugの古いバージョンを引っ張った別の依存関係について。 – Giszmo

0

として

dependencies { 
    compile "com.google.code.findbugs:annotations:3.0.1" 
} 

を示唆した以前除くモジュールJSR305は私のために働いたが、私はのために異なる構文を使用してきたようにモジュールではなくプロジェストをインポートします。

私は、ディスク上のインディペンデントプロジェクトとして存在するライブラリプロジェクトをインポートしたので、私は私はあなたがこの[スクリプト]を使用することができます

compile (project(path: ':shareLib')) { 
    exclude module: 'jsr305' 
} 
関連する問題