当我尝试启用 multidex gradle 指示支持库的版本冲突

When I try to enable multidex gradle indicates version conflict for support library

我试图在 gradle 文件中启用 multidex,但遇到以下错误:

我从来没有用过 25.2.0 版本的东西! 为什么它一直唠叨这个冲突?我检查了好几次。而且我在我的项目中没有发现任何 25.2.0 库的使用。

来自应用程序模块的完整依赖项列表:

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(path: ':vaslibrary')
compile 'uk.co.chrisjenx:calligraphy:2.2.0'
compile 'com.jaredrummler:material-spinner:1.1.0'
compile 'com.android.support:multidex:1.0.1'
testCompile 'junit:junit:4.12'

}

在 vaslibrary 中我有这些依赖项:

dependencies {
compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
testCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile('com.squareup.retrofit2:converter-simplexml:2.1.0') {
    exclude group: 'xpp3', module: 'xpp3'
    exclude group: 'stax', module: 'stax-api'
    exclude group: 'stax', module: 'stax'
}
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'io.fotoapparat.fotoapparat:library:1.0.4'
compile 'me.dm7.barcodescanner:zxing:1.9.3'
compile 'com.google.android.gms:play-services-maps:10.2.4'
compile 'com.google.android.gms:play-services-location:10.2.4'
compile 'com.google.firebase:firebase-core:10.2.4'
compile 'com.google.firebase:firebase-messaging:10.2.4'
compile 'io.nlopez.smartlocation:library:3.3.1'
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
compile 'com.hlab.fabrevealmenu:fab-reveal-menu:1.0.2'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:gridlayout-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton.timber:timber:4.5.1'
compile 'com.mohamadamin:persianmaterialdatetimepicker:1.2.1'
compile files('libs/BixolonPrinterV230.jar')
compile 'com.github.mancj:SlideUp-Android:2.2.3'

}

像这样使用 gradle dependencies 命令:

./gradlew app:dependencies 

(app 是你的应用程序模块的名称)找出哪些依赖项依赖于另一个依赖项(传递依赖项)的冲突版本。

在您的情况下,库 io.nlopez.smartlocation:library:3.3.1 对版本 25.2.0 的支持库具有传递依赖性,这与其他依赖项传递使用的支持库版本 25.3.1 相冲突。

通过告诉对冲突版本具有传递依赖性的依赖项排除该冲突依赖项来解决问题:

compile ('io.nlopez.smartlocation:library:3.3.1') {
    exclude group: 'com.android.support'
}

我在测试中遗漏了一些你的依赖项 运行,你可能需要排除更多。