简体   繁体   English

多个dex文件在android studio中定义错误

[英]Multiple dex files define error in android studio

im a begginer in android studio and im trying to perform a database sync with mysql and a android database. 我是android studio中的入门者,我正在尝试与mysql和android数据库执行数据库同步。 after following a guide (it makes no mention to gradle stuff however so im having to improvise) im left with the bellow error After searching i was told its probably my dependencies but i haven't had much look so far 在遵循指南之后(它没有提及gradle的东西,但是我必须即兴创作)im伴随着下面的错误提示在搜索后,我被告知可能是我的依赖性,但是到目前为止我并没有看到太多

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile files('libs/gson-2.2.2.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/android-async-http-1.4.4.jar')
}

my library in the .idea folder look like this 我的.idea文件夹中的库如下所示

libraries

android_async_http_1_4_4.xml
android_support_v4.xml
appcompat_v7_21_0_3.xml
gson_2_2_2.xml
support_annotations_21_0_3.xml
support_v4_21_0_3.xml

this is the error i got 这是我得到的错误

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Developer Tools/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /Volumes/Untitled/You copy/app/build/intermediates/dex/debug --input-list=/Volumes/Untitled/You copy/app/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
    2
  Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs;
        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)

thank you for any help you can offer me 谢谢您能为我提供的任何帮助

Gradle knows how to resolve dependency conflicts. Gradle知道如何解决依赖冲突。 You can read about that here : https://gradle.org/docs/current/userguide/dependency_management.html . 您可以在这里阅读有关内容: https : //gradle.org/docs/current/userguide/dependency_management.html

So the error is not because appcompat clashes with support-v4 . 因此错误不是因为appcompatsupport-v4冲突。

It looks like you're referencing twice, libraries from your libs folder. 您似乎两次引用了libs文件夹中的libs

Either use: 可以使用:

dependencies {
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile files('libs/gson-2.2.2.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/android-async-http-1.4.4.jar') }

or: 要么:

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.android.support:appcompat-v7:21.0.3' 
}

However, my recommendation is to also reference support-v4 , gson and android-async as you reference appcompat-v7. 但是,我的建议是在引用appcompat-v7.也引用support-v4gsonandroid-async appcompat-v7.

Problem: 问题:

With Gradle dependencies, AppCompatv7 also brings in Supportv4 . 凭借Gradle依赖性, AppCompatv7Supportv4 So, simply remove Supportv4 .jar because you are accidentally adding it twice. 因此,只需删除Supportv4 .jar因为您不小心将它添加了两次。

Your dependencies: 您的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile files('libs/gson-2.2.2.jar')
    compile files('libs/android-support-v4.jar') // <-- remove jar
    compile files('libs/android-async-http-1.4.4.jar')
}

Should be: 应该:

I also upgraded your .jars into Gradle dependencies. 我也将您的.jars升级为Gradle依赖项。

dependencies {
    compile 'com.android.support:appcompat-v7:22.0.0' // <-- upgraded
    compile 'com.google.code.gson:gson:2.3.1' // <-- upgraded to gradle dependency
    compile 'com.loopj.android:android-async-http:1.4.4' // <-- upgraded to gradle dependency
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM