多个dex文件在android studio中定义Landroid / support / v4 /
我可以integrate (add & work) with many libraries
。
但是对于ActionBarSherlock
库,我有很多问题。
第一个问题是流行的问题Multiple dex files define
,
我知道duplicated 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.+'
}
但我收到第二个问题 : unsupported Gradle DSL method found: 'exclude()'!
错误。 所以我改变了build.gradle
main module
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.+'
}
Solved
第二个问题 ,但仍然得到第一个问题 Multiple dex files define
错误。
我读了很多主题,但现在还不能解决第一个问题 ,
请帮帮我,
谢谢,
p / s:我可以与Gradle成功同步,但运行时会出现以上错误。
我使用Android Studio 0.5.5
编辑
build.gradle
ActionBarSherlock
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 project
build.gradle of main module
和build.gradle of main module
build.gradle
project
:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
build.gradle
完成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
}
我在下面得到这个错误:
好的,感谢@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:+'
}
仍然得到第一个问题 Multiple dex files define
错误。
我现在想要的是如何通过Maven
成功添加com.google.android.gms:play-services
库,
请帮帮我,
谢谢,
UPDATE
遵循以下步骤之后:
通过Maven将该库放入主模块的build.gradle
中: compile 'com.google.android.gms:play-services:+'
Restart Android Studio
Sync project with gradle
不再再发生这个错误。
这么奇怪,
当我像这样设置我的依赖关系时:
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.google.android.gms:play-services:+'
}
我仍然得到第一个问题 Multiple dex files define
错误。
但是按照以下步骤操作:
通过Gradle将该库放入主模块的build.gradle
中: build.gradle
compile 'com.google.android.gms:play-services:+'
Restart Android Studio
Sync project with gradle
我不再得到这个错误。
我在我的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
删除classes.jar为我工作。 我修改了我的DependencyService项目以生成DependencyService.jar而不是classes.jar导致重复。
链接地址: http://www.djcxy.com/p/20015.html上一篇: Multiple dex files define Landroid/support/v4/ in android studio