当前位置: 首页 > 知识库问答 >
问题:

多个dex文件定义landroid/support/v4/accessibilityService/accessibilityServiceInfoCompat

岳玉堂
2023-03-14
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)

如果我grep v4,我会在构建文件夹中看到两个文件。

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches
Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches

我的gradle文件只包括以下支持库:

compile 'com.android.support:support-v13:19.0.0'

我很难理解r7库是如何被包括在内的。我运行了gradle clean,当我重新运行AssembleDebug时,它总是出现在那里。

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches

这是play services AAR bundle和v13库之间的不兼容吗?

 dependencies {


 // Google Play Services
//compile 'com.google.android.gms:play-services:4.0.30'

// Support Libraries
//compile 'com.android.support:support-v4:19.0.0'
///compile 'com.android.support:appcompat-v7:19.0.0'
//compile 'com.android.support:gridlayout-v7:19.0.0'
compile 'com.android.support:support-v13:19.0.0'
compile 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'
compile 'commons-codec:commons-codec:1.9'
compile 'com.madgag:markdownj-core:0.4.1'
compile 'com.wu-man:android-oauth-client:0.0.2'
compile 'com.google.http-client:google-http-client-jackson2:1.17.0-rc'
compile 'org.apache.commons:commons-lang3:3.2'
compile 'com.google.code.gson:gson:2.2.4'
}

共有1个答案

阴元青
2023-03-14

运行gradle-q dependencies(或gradle-q:projectname:dependencies)以生成依赖关系报告。您应该看到r7来自哪里,例如:

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    |    \--- com.google.android:support-v4:r7
|    +--- com.commonsware.cwac:camera:0.5.4
|    \--- com.android.support:support-v4:18.0.+ -> 18.0.0
\--- com.android.support:support-v4:18.0.+ -> 18.0.0

然后,使用exclude指令阻止该依赖项。在我的例子中,它来自我的CWAC相机库,所以我使用:

dependencies {
    compile('com.commonsware.cwac:camera-v9:0.5.4') {
      exclude module: 'support-v4'
    }

    compile 'com.android.support:support-v4:18.0.+'
}

(其中第二个compile语句指示您实际需要的版本)

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    \--- com.commonsware.cwac:camera:0.5.4
\--- com.android.support:support-v4:18.0.+ -> 18.0.0
 类似资料:
  • 我无法编译该项目,编译时出现以下错误: 错误:任务': myApp: dexDebug'执行失败。 通用域名格式。Android石斑鱼类。常见的内部的LoggedErrorException:无法运行命令:C:\Program Files(x86)\Android\Android studio\sdk\build tools\21.0.2\dx。bat--dex--输出C:\Users\Andro

  • 当我将android支持注释添加到我的依赖项时 我有一个错误: 错误代码:2输出:意外的顶级异常:com.android.dex.dexException:多个dex文件定义Landroid/Support/Annotation/Animres;在com.android.dx.merge.dexmerger.readsortabletypes(dexmerger.java:594)在com.and

  • 我可以 ,它只有一个: <代码>设置。gradle如下: @garbriele:我更新了新问题,显示项目的

  • 问题内容: 在Android项目中,团队主要还是使用Eclipse并添加了一些第3方库,然后在运行gradle build时Android Studio无法在设备anf上运行,并出现错误: 对于不同的文件,以此类推10到20次 尝试过 和 和 对彼此而言 并编译’com.android.support:appcompat-v7:21.0.+’ Eclipse ADT没有问题。 如何使用Gradle

  • 我敢肯定,不知怎么的,我添加了两倍的谷歌库。 多谢了。

  • 问题内容: 我正在尝试将Espresso 2添加到我的项目中(该项目还具有许多其他依赖项),但是在尝试运行测试时遇到了此错误: 非测试版本工作正常。 有人有调试最佳方法的任何技巧吗? 我尝试运行,但是看不到任何明显的问题(尽管我对解释其输出了解不多): 我也尝试搜索目录的子文件夹,但看不到任何冒烟者(尽管我不确定我是否以正确的方式搜索了所有外部依赖项JAR)。 这是我的build.gradle的依