android studio中多个dex文件定义了Landroid/support/v4/ [英] Multiple dex files define Landroid/support/v4/ in android studio

查看:31
本文介绍了android studio中多个dex文件定义了Landroid/support/v4/的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以集成(添加和工作)许多库.

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

But as for ActionBarSherlock library, I have so many problems with it.

First Issue是热门问题多个dex文件定义

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

I know The duplicated android-support-v4.jar causes it, but I can not solve this issue now :

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 方法:'exclude()'! 错误.因此,我像这样更改了 main modulebuild.gradle:

But I received Second Issue : unsupported Gradle DSL method found: 'exclude()'! error. Therefore I changed build.gradle of main module like this:

//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.+'
}

Solved Second Issue,但仍然得到First Issue Multiple dex files define 错误.

Solved Second Issue, But still get First Issue Multiple dex files define error.

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

I read many topics, but can not solve First Issue now,

请帮帮我,

谢谢,

p/s : 我可以成功与 Gradle 同步,但是运行时,它会出现上述错误.

我使用的是 Android studio 0.5.5

编辑

build.gradle,只有一个android-support-v4.jar:

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

setting.gradle 像这样:

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

@Garbriele : 我更新了新问题,显示build.gradle of projectbuild.gradle of main moduleprojectbuild.gradle:

@Garbriele : I updated new question, show build.gradle of project and build.gradle of main module build.gradle of project:

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

编辑后的main module

build.gradle:

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

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

I got this error in below :

好的,感谢@Garbriele 的评论,我已经用这个解决了这个问题:

Okay, thanks for @Garbriele comment, I already fixed this by using this :

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

EDIT 2 当我这样写时:

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

仍然得到First Issue 多个dex文件定义错误.

我现在想要的是如何通过Maven成功添加com.google.android.gms:play-services库,

What I want now is how to add com.google.android.gms:play-services library via Maven successfully,

请帮帮我,

谢谢,

更新

按照以下步骤操作后:

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

重启 Android Studio

将项目与 gradle 同步

不再出现此错误.

推荐答案

好奇怪,

当我像这样设置依赖项时:

When I setup my dependencies like this :

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

我仍然遇到First Issue Multiple dex files define 错误.

但是在遵循这些步骤之后:

But after following these steps:

  • 将库通过 Gradle 放在主模块的 build.gradle 中:compile 'com.google.android.gms:play-services:+'

重启 Android Studio

将项目与 gradle 同步

我不再收到此错误.

这篇关于android studio中多个dex文件定义了Landroid/support/v4/的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆