【发布时间】:2014-06-09 11:05:45
【问题描述】:
我可以integrate (add & work) with many libraries。
但是对于ActionBarSherlock库,我有很多问题。
First Issue是热门问题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 Second Issue,但仍然得到First Issue Multiple dex files define 错误。
我阅读了很多主题,但现在无法解决First Issue,
请帮帮我,
谢谢,
p/s : 我可以与 Gradle 成功同步,但运行时出现上述错误。
我使用的是 Android Studio 0.5.5
编辑
build.gradle of 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.+'
}
}
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
}
EDIT 2当我这样说时:
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.google.android.gms:play-services:+'
}
仍然得到 First Issue Multiple dex files define 错误。
我现在想要的是如何通过Maven成功添加com.google.android.gms:play-services库,
请帮帮我,
谢谢,
更新
按照以下步骤操作后:
通过 Maven 将库放在主模块的
build.gradle中:compile 'com.google.android.gms:play-services:+'Restart Android StudioSync project with gradle
不再出现此错误。
【问题讨论】:
-
您可以使用 compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' 和 compile 'com.google.android.gms:play-services:4.3.23' 来删除本地库。
-
当我输入
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'时(这意味着通过maven下载这个库)。我的 gradle 无法再同步Gradle project sync failed ...。你能帮我解决这个问题吗? -
您是否将“repositories { mavenCentral() }”添加到您的 build.gradle 中?
-
我很难理解你的问题。您能否对其进行编辑并突出显示您当前遇到的问题?我对您遇到问题但后来解决的部分感到困惑。
-
@ScottBarta :更新了新问题,让您了解更多细节。仍然得到主要错误作为问题的标题。请告诉我解决方案?
标签: android android-studio android-support-library android-gradle-plugin build.gradle