Tôi đang gặp khó khăn khi tích hợp SDK vải Twitter vào ứng dụng của mình. Tôi làm theo các bước của Twitter tutorial và everyhting diễn ra tốt đẹp nhưng khi tôi cố gắng để xây dựng dự án của tôi với gradle, tôi nhận được lỗi này:Xung đột SDK Android SDK vải với Google GSON
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
D:\Android\android-studio\sdk\build-tools\android-4.4W\dx.bat --dex --output ...
Error Code: 2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/gson/JsonSerializer;
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)
tôi đã cố gắng loại bỏ thư viện Gson tĩnh của tôi từ thư mục lib mô-đun ứng dụng của tôi và tất cả mọi thứ đã đi tốt sau đó. Tương tự khi loại bỏ các dòng thêm sdk twitter từ phụ thuộc module gradle vì vậy tôi khá chắc chắn có một số loại xung đột giữa hai và tôi đang tìm cách để giải quyết nó.
Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!
Trong trường hợp nó có thể được sử dụng bất kỳ người ngoài kia đây là gradle tập tin mô-đun ứng dụng của tôi:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
...
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.debug
ext.enableCrashlytics = false
}
}
}
repositories {
jcenter()
mavenCentral()
maven{ url 'https://maven.fabric.io/repo'}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':facebook')
compile 'com.android.support:support-v13:20.0.0'
compile 'com.google.android.gms:play-services:6.1.11'
compile('com.twitter.sdk.android:twitter:[email protected]') {
transitive = true;
}
}
SDK vải phải sử dụng Gson trong nội bộ, do đó nếu bạn tiếp xúc, bạn cũng có thể sử dụng công cụ này và xóa Gson khỏi '/ libs /'. Ngoài ra, hãy nhập cả hai thư viện dưới dạng phụ thuộc trong Gradle và sau đó bạn có thể loại trừ 'Gson' khỏi' Fabric' – Blundell
@Blundell Cảm ơn câu trả lời của bạn. Đó là những gì tôi nghĩ ! Tôi sẽ xem xét việc xóa Gson khỏi Fabric SDK vì tôi duyệt mọi gói bên trong SDK và không tìm thấy bất kỳ thứ gì giống như nó. Bạn có bất kỳ thông tin chi tiết nào về việc xóa Gson khỏi SDK ở chế độ gradle không? – user3476114
Vâng nó sẽ như thế này, nhưng với các thư viện liên quan của bạn: 'biên dịch ('com.google.dexmaker: dexmaker-mockito: 1.1') { loại trừ mô-đun: 'hamcrest-core' }' – Blundell