您好我只是尝试使用带有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 /建立/中间体/ TMP /地塞米松/调试/ 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)
我尝试删除
下的所有内容app / build / generated,outputs和temp
甚至无效的Android Studio缓存并重启。不好。对我而言,这就是Card IO和Braintree Android SDK都有的东西,它们都将被打包到apk中。 Braintree Android SDK是否已包含Card IO?
有谁可以指出我做错了什么?非常感谢!
答案 0 :(得分:3)
在1.3.0版本中,Braintree SDK不再包含card.io。
的副本答案 1 :(得分:1)
Braintree SDK已包含有氧java类。但是,它不包含.so文件。请尝试删除card.io.jar的本地副本,一切都应该有效。