3

私は新しい Android 開発者であり、ビルド ファイルは常に私を怖がらせます。:D プロジェクトでサードパーティのライブラリを使用しています

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
    compile 'de.hdodenhof:circleimageview:1.2.1'
    compile 'com.github.flavienlaurent.datetimepicker:library:0.0.2'
}

これに加えて、Gradle 依存関係ではなく、jar ファイルとしてのみ利用可能な MPAndroidChart (lib フォルダー内の唯一の jar) も使用しています。

MPAndroidChart は依存関係として NineOldAndroids を使用していますが、他のライブラリの 1 つもそれを使用していると思われ、ビルドが失敗しています。

これらのライブラリの両方を動作させる方法はありますか?

同様の質問を確認したところ、まさに私の問題であることがわかりました - Gradle error - Execution failed for task ':app:dexDebug'

しかし、彼は自分で NineOldAndroids ライブラリを含めていました。それで彼はその行を削除しただけで、それは機能していました。

私が持っていたアイデアの 1 つは、jar をバラバラにしてプロジェクトに Java ファイルとして含めることでしたが、それはこの問題にとってやり過ぎのように思えました。もっと簡単な方法があるはずですか?

これは私の全体的なエラーです

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/ValueAnimator$AnimatorUpdateListener;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)


 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Users\manu.joseph\AppData\Local\Android\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output C:\Users\manu.joseph\AndroidStudioProjects\WriteTrack\app\build\intermediates\dex\debug --input-list=C:\Users\manu.joseph\AndroidStudioProjects\WriteTrack\app\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
    2
Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/ValueAnimator$AnimatorUpdateListener;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
        at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
4

4 に答える 4

1

これを build.gradle に追加します。

 configurations {
    all*.exclude group: 'com.nineoldandroids'
}

私にとってはうまくいきます;)

于 2015-02-22T15:15:43.537 に答える
0

次の行を削除して、もう一度やり直してください

compile 'com.android.support:support-v4:21.0.3'
于 2015-02-12T03:49:36.960 に答える
0

私は新しい Android 開発者で、この回答を投稿する少し前に、同じ問題に直面しています。グーグルとスタックオーバーフローの質問が2つだけ表示されました。あなたの質問と、そこに提供したstackoverflowの質問。

どういうわけか、プロジェクト構造(ctrl + alt + shift + s)を介して未使用の依存関係ライブラリを削除した後、私の場合は

compile 'com.rengwuxian.materialedittext:library:1.8.2'

Gradleを同期してから、うんざりしてください!それがあなたにとってもうまくいくことを願っています。

于 2015-02-12T11:52:59.887 に答える
0

結局、私はライブラリを外部プロジェクトとして追加することになりました。

詳細な手順はこちら.. ライブラリ プロジェクトを Android Studio に追加するにはどうすればよいですか?

これが誰かに役立つことを願っています..

于 2015-02-12T13:48:16.970 に答える