我可以与许多库进行集成(添加和使用)。
但是对于ActionBarSherlock库,我遇到了很多问题。
第一个问题是常见的Multiple dex files define
问题,
我知道这是由于重复的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
更改为以下内容:
//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.+'
}
解决了
第二个问题,但是仍然出现第一个问题 Multiple dex files define
错误。
我阅读了许多主题,但现在无法解决第一个问题,
请帮帮我,
谢谢,
p/s:我可以成功地与Gradle同步,但运行时会出现以上错误。
我使用的是Android Studio 0.5.5
编辑
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文件
和主模块的build.gradle文件
。
项目的build.gradle文件
:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
编辑后的主模块
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
库。
请帮帮我,
谢谢,
更新
按照以下步骤:
将Maven库放入主模块的
build.gradle
中:compile 'com.google.android.gms:play-services:+'
重启Android Studio
与gradle同步项目
就不会再次出现此错误。
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
(这意味着通过Maven下载此库)时,我的Gradle无法再同步Gradle项目同步失败...
。您能帮我解决这个问题吗? - Huy Tower