嗨,我只是想在一个使用带有 Gradle 构建的 Android Studio 的 Android 项目中使用Card IO和Braintree Android SDK。我什至还没有添加任何引用这两个库的代码。我只是将它们设置为 gradle 构建文件中的依赖项,如下所示:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "blahblahblah"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
......
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':android-async-http-1.4.6')
compile project(':gson-2.3.1')
compile project(':card.io')
compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.android.support:support-v4:21.0.2'
compile 'com.braintreepayments.api:braintree:1.+'
}
然后我尝试了一个干净并成功的构建,但是当我尝试在测试手机上运行它时,我收到了以下信息:
Error:Execution failed for task ':app:dexDebug'.
com.android.ide.common.internal.LoggedErrorException:无法运行命令:/Applications/ADT_Bundle/sdk/build-tools/21.1.1/dx --dex --no-optimize --output /path_to_project_root/app/build /intermediates/dex/debug --input-list=/path_to_project_root/app/build/intermediates/tmp/dex/debug/inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lio/card/payment/b;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)
我尝试删除下的所有内容
应用程序/构建/生成,输出和临时
甚至无效的 Android Studio 缓存并重新启动。不好。这在我看来是 Card IO 和 Braintree Android SDK 都有的东西,它们都将被打包到 apk 中。Braintree Android SDK 是否已经包含 Card IO 或其他内容?
谁能指出我做错了什么?非常感谢 !