2016-11-25 23 views
3

重複の(Kotlinバージョン1.0.4)を持つZipExceptionをgradle.buildKotlinはので、私は依存してgradle.buildにKotlinを追加

compile 'org.jetbrains:annotations-java5:15.0' 

私はそれが持つZipExceptionでクラッシュし、ビルドを実行した後:

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/jetbrains/annotations/Nullable.class 

何alreaをdyが試した:

私はこのソリューションを試みた:ORG/IntelliJの/ LANG /注釈から重複するだけでなく、クラスだった NotNull.class Nullable.classないだけということとKotlin,Java,multidex,Dagger 2,Butterknife and Realm: transformClassesWithJarMergingForDebug: duplicate entry: org/jetbrains/annotations/NotNull.class をしかし、それは終わりました/

5つのクラスを追加した後も、クラッシュしました。この例外を引き起こすすべてのクラスを手動で追加しないことで、この問題を解決するより良い方法はありますか?

UPDATE(02.02.16)

私が問題にビットを働いたとして、私は私がorg.jetbrains:annotations-java5:15.0を削除する場合は、私のプロジェクトのために、関連するアノテーションクラスは、NonNls.classと欠けているContract.classあることがわかりました。それらはkotlin-runtimeではなく、Jetbrainsアノテーションの依存関係にあります。もう一度Jetbrainsアノテーションの依存関係を追加せずに追加できますか?

+0

'kotlin-runtime'は' Nullable'、 'NotNull'、' Mutable'、 'ReadOnly'の4つのアノテーションのみを束ねます。他の注釈が衝突している場合、別の依存関係から来る可能性があります。 – Ilya

+0

@Ilyaさん、ありがとうございました。私が試した解決策は、 'NotNull'と' Nullable'で働いていました。その後、 'Flow.class'は重複していました。 annotations.jarをオーバーライドするために 'Flow.class'をリストに追加したので、別のクラスが問題でした。私は問題はまだ 'annotations-java5'だと思います。 – alexfi

+0

簡単な方法は、 'compile 'org.jetbrains:annotations-java5:15.0''を削除することです。アンドロイドサポートライブラリはそれ自身のアノテーションを提供するので、IntelliJから取得したものと同じものを使用してみてください。 – piotrek1543

答えて

0

使用しようとする代わりに:

compile 'org.jetbrains:annotations-java5:15.0' 

この:

compile 'com.android.support:support-annotations:+' 

Androidのサポートライブラリデフォルトでは、Kotlinのように、いくつかの最も使用される注釈を提供し、あなたは@NonNullのようなbasiscsを使用している場合、@Nullable@Null注釈、上記の依存関係は削除してください。

+0

あなたの答えをありがとう! :) NotNlsアノテーションが必要です。ご覧のとおり、 '' com.android.support:support-annotations:+ ''には含まれていません。 プロジェクトが大きすぎて、すべてのNonNlsアノテーションの使用法をリファクタリングできません。 – alexfi

+0

両方の依存関係を削除し、インポートを 'javax.annotation.NonNull'に変更します – piotrek1543

+0

私の質問が更新されました:) – alexfi

関連する問題