多个dex文件在android studio中定义了Landroid / support / v4 /

前端之家收集整理的这篇文章主要介绍了多个dex文件在android studio中定义了Landroid / support / v4 /前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以与许多库集成(添加和工作).

但至于ActionBarSherlock库,我遇到了很多问题.

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

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

  1. Error:Execution Failed for task ':fitness:dexDebug'.
  2.  
  3. Error Code:
  4. 2
  5. Output:
  6. UNEXPECTED TOP-LEVEL EXCEPTION:
  7. com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
  8. at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
  9. at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
  10. at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
  11. at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
  12. at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
  13. at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
  14. at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
  15. at com.android.dx.command.dexer.Main.run(Main.java:230)
  16. at com.android.dx.command.dexer.Main.main(Main.java:199)
  17. at com.android.dx.command.Main.main(Main.java:103)

我在same error中听到了答案.它使用了:

  1. dependencies {
  2. compile('...') {
  3. exclude module: 'support-v4'
  4. }
  5.  
  6. compile 'com.android.support:support-v4:18.0.+'
  7. }

但是我收到了第二个问题:发现了不支持的Gradle DSL方法:’exclude()’!错误.
因此我改变了主模块的build.gradle,如下所示:

  1. //configurations {
  2. // all*.exclude group: 'com.android.support',module: 'support-v4'
  3. //}
  4.  
  5. dependencies {
  6. compile fileTree(dir: 'libs',include: '*.jar')
  7. compile project(':google-play-services')
  8. compile files('/google-play-services/libs/google-play-services.jar')
  9. compile (project(':actionbarsherlock')) {
  10. exclude(module: 'support-v4')
  11. }
  12. compile 'com.android.support:support-v4:18.0.+'
  13. }

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

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

请帮我,

谢谢,

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

我使用Android studio 0.5.5

编辑

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

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

像这样的setting.gradle:

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

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

  1. buildscript {
  2. repositories {
  3. mavenCentral()
  4. }
  5. dependencies {
  6. classpath 'com.android.tools.build:gradle:0.9.+'
  7. }
  8. }

编辑后的主模块的build.gradle:

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

我在下面得到了这个错误

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

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

编辑2当我这样说:

  1. repositories {
  2. mavenCentral()
  3. }
  4. dependencies {
  5. compile fileTree(dir: 'libs',include: '*.jar')
  6. compile 'com.google.android.gms:play-services:+'
  7. }

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

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

UPDATE

完成以下步骤后:

>通过Maven将库放在main模块的build.gradle中:编译’com.google.android.gms:play-services:’
>重启Android Studio
>使用gradle同步项目

再也不会出现此错误.

解决方法

这么奇怪,

当我设置我的依赖项时:

  1. repositories {
  2. mavenCentral()
  3. }
  4. dependencies {
  5. compile fileTree(dir: 'libs',include: '*.jar')
  6. compile 'com.google.android.gms:play-services:+'
  7. }

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

但是在执行以下步骤之后:

>通过Gradle将库放在main模块的build.gradle中:编译’com.google.android.gms:play-services:’
>重启Android Studio
>使用gradle同步项目

我不再收到这个错误.

猜你在找的Android相关文章