我可以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)
我遵循same error中的答案。它使用了:
dependencies {
compile('...') {
exclude module: 'support-v4'
}
compile 'com.android.support:support-v4:18.0.+'
}
但是我收到了第二期:
unsupported Gradle DSL method found: 'exclude()'!
错误。因此,我将
build.gradle
的main module
更改为://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
,它只有一个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
的project
:buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
编辑后的
build.gradle
的main module
:dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // Get following error in this line
}
我在下面收到此错误:
好的,感谢@Garbriele的评论,我已经通过使用this来解决此问题:
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
错误。我现在想要的是如何通过
com.google.android.gms:play-services
成功添加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
错误。但是,请按照下列步骤操作:
build.gradle
中:compile 'com.google.android.gms:play-services:+'
Restart Android Studio
Sync project with gradle
我不再收到此错误。