2016-05-02 19 views
4

私は、Androidデバイス上で私のアンドロイドアプリケーションをrunしようとすると、Gradleのコンソールは、次のエラーを報告:のAndroidメーカー:解決重複クラス

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/loopj/android/http/AsyncHttpClient$1.class 

私は「AsyncHttpClient」クラスを検索すると、私がいることがわかりそれは確かに二つの別々の場所で発見されています:最初のパスは、それが「キャッシュ」ファイルです示唆しているようだ...ので、私はinvalidating & restarting my cacheを試してみたが、Gradleのが再構築されます後の両方のファイルがまだそこにある

/Users/Afflatus/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.9/5d171c3cd5343e5997f974561abed21442273fd1/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java 

/Users/Afflatus/.ideaLibSources/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java 

と私は試みるrunアプリケーション。私は代替ファイルpostsを読んだところ、ファイルの1つを削除することで解決できる...だから、私はキャッシュの場所に行って "1.4.9"フォルダにあるすべてのファイルを削除した。残念なことにAndroid Studioを開いた後新しいキャッシュファイルが作成され、同じエラーが発生します。

他の記事(hereherehere、およびhere)私は、ルートディレクトリに「クリーン./gradlew」を追加した場合、それは(私の知る限り理解して)だけで、実行のために再度のGradleを再構築します示唆しています。私はまだ同じエラーを取得する事を助けていない

enter image description here

しかしunfortunantly、:私のアプリのフォルダは次のように見せていた

enter image description here

を:だから私はそれにもやってみました。私は間違って何をしていますか?私は何をしなければならないのですか?

+1

あなたの問題をどのように解決したのか分かりましたが、あなたとまったく同じ問題がありました。 –

+0

@DavidCheung私はそれを解決したとは思わない。私はAndersの提案を試みたと思うが、何も私の特定の事例ではうまくいかなかったようだ。多分それはあなたのためになりますか? – Afflatus

+0

同じ問題があります。無駄な解決策を探すのに費やした時間。あなたがクラスに packagingOptions { が は 'crashlytics.jar' を除外する 'okhttp-2.0.0.jar' を除外を除外するために、この作品は 'DimenRes.class' を除外してい – AndroidDev

答えて

0

libsフォルダにライブラリを2回追加したため、libsフォルダに同じライブラリの複数のバージョンがあると、このエラーが発生することがありました。これを確認し、重複したjarファイルを削除してください。

また、gradle.buildに依存関係を追加し、libsフォルダにjarファイルを持つこともできます。

したがって、両方の場所を確認し、重複するエントリを削除してクリーンアップし、APKを再度ビルドします。

が、それは私の場合は

1

を役に立てば幸い、私はあなたと同じエラーの原因となった私のGradleでsensorocloud.jarcompile 'com.loopj.android:android-async-http:1.4.9'を使用しています。 sensoroクラウドSDKではloopjのasync-httpが使用されています。

jarファイル内の重複ファイル.classを手作業で削除することで、それを解決することができました。私は私ができるかどうかを確認するためにウェブを検索しようとしている(すなわち

  1. を圧縮するためにjarファイルから拡張子を変更
  2. それを抽出com.loopj.android.classファイルを削除)

を(PS gradleのjarの特定のクラスを除外しますが、成功しません。私はthis SO postを参照しました)

+0

は は「AccessTokenを除外する 'サポート-V4' を除外します$ 1.class ' } – amdstorm

+0

あなたが言及した除外に関連しているとは思わない。 –

関連する問題