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

多个dex文件定义android工作室中的Landroid/support/v4/

温凯
2023-03-14

我可以集成(添加

但是对于ActionBarSherlock库,我有很多问题。

第一个问题是流行的问题多个dex文件定义,

我知道复制的android-support-v4.jar导致它,但我现在无法解决这个问题:

Error:Execution failed for task ':fitness:dexDebug'.

Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
    at com.android.dx.command.dexer.Main.run(Main.java:230)
    at com.android.dx.command.dexer.Main.main(Main.java:199)
    at com.android.dx.command.Main.main(Main.java:103)

我跟着回答犯了同样的错误。它使用了:

dependencies {
    compile('...') {
      exclude module: 'support-v4'
    }

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

但是我收到了第二个问题:发现不支持的Gradle DSL方法:'排除()'! 错误。因此我更改了主模块build.gradle如下:

//configurations {
//    all*.exclude group: 'com.android.support', module: 'support-v4'
//}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':google-play-services')
    compile files('/google-play-services/libs/google-play-services.jar')
    compile (project(':actionbarsherlock')) {
        exclude(module: 'support-v4')
    }
    compile 'com.android.support:support-v4:18.0.+'
}

已解决第二个问题,但仍得到第一个问题多个dex文件定义错误。

我读了很多话题,但现在无法解决第一个问题,

请帮帮我,

谢谢

附言:我可以成功地与Gradle同步,但在运行时,它会出现以上错误。

我使用了Android Studio 0.5.5

编辑

build.gradle的ActionBarSherlock,它只有一个android-support-v4.jar

dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
}

<代码>设置。gradle如下:

include ':fitness', ':google-play-services',':actionbarsherlock'

@garbriele:我更新了新问题,显示项目的build.gradle和项目的主模块build.gradlebuild.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

<代码>构建。主模块的梯度编辑后:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // Get following error in this line
} 

我在下面得到了这个错误:

好的,谢谢@Garbriele的评论,我已经用这个修复了这个问题:

repositories {
            mavenCentral()
        }
dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // Get following error in this line
    } 

编辑2当我这样写:

repositories {
            mavenCentral()
        }
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.google.android.gms:play-services:+'
}

仍然得到第一个问题多个dex文件定义错误。

我现在想要的是如何添加com.google.Androidgms:通过Maven成功播放服务库,

请帮帮我,

谢谢

更新

完成以下步骤后:

>

  • 通过Maven将库放在主模块的build.gradle中:编译'com.google.android.gms: play-service:'

    重新启动Android Studio

    将项目与gradle同步

    不再获取此错误。


  • 共有2个答案

    闾丘书
    2023-03-14

    我的libs目录中有重复的库:

    $ ls -la libs/
    total 80
    drwxr-xr-x   5  wheel    170 25 Sep 22:09 .
    drwxr-xr-x  10  wheel    340 25 Sep 22:07 ..
    -rw-r--r--   1  wheel   3736 25 Sep 21:36 ApiComponent.jar
    -rw-r--r--   1  wheel  28741 25 Sep 21:36 DependencyService.jar
    -rw-r--r--   1  wheel   3736 25 Sep 22:09 classes.jar
    

    正在删除类。jar为我工作。我修改了DependencyService项目以生成DependencyService。jar而不是类。导致复制的jar。

    邢寒
    2023-03-14

    真奇怪,

    当我这样设置依赖项时:

    repositories {
                mavenCentral()
            }
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile 'com.google.android.gms:play-services:+'
    }
    

    我仍然得到第一个问题多个dex文件定义错误。

    但在遵循这些步骤之后:

    >

    重新启动Android Studio

    将项目与gradle同步

    我不再得到这个错误。

     类似资料:
    • 我无法编译该项目,编译时出现以下错误: 错误:任务': 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

    • 如果我grep v4,我会在构建文件夹中看到两个文件。 我的gradle文件只包括以下支持库: 我很难理解r7库是如何被包括在内的。我运行了,当我重新运行AssembleDebug时,它总是出现在那里。 这是play services AAR bundle和v13库之间的不兼容吗?

    • 问题内容: 在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的依