鍍金池/ 問(wèn)答/Android  網(wǎng)絡(luò)安全/ Android External Libraries中多余的各種support庫(kù)

Android External Libraries中多余的各種support庫(kù)

問(wèn)題是這樣發(fā)生的,我在項(xiàng)目中有用到RecycleView然后我就引入了他,但是gradle報(bào)錯(cuò),具體的意思是:

  1. RecycleView的支持庫(kù)的版本號(hào)和其他庫(kù)不一致,找到了其他的版本號(hào)云云,應(yīng)該使用一致的版本號(hào)來(lái)避免編譯報(bào)錯(cuò)。
  2. 當(dāng)前的RecycleView的版本號(hào)(28.x.x),高于編譯版本號(hào)(26)。

我嘗試著把RecycleView的版本號(hào)改成和當(dāng)前編譯版本相同的版本號(hào),來(lái)修復(fù)上面的2號(hào)問(wèn)題,但是之后的第一個(gè)問(wèn)題還是存在,我嘗試打開(kāi)了 Android Studio 左側(cè)欄的, External Libraries 查看到了不同的版本號(hào),如下圖:

clipboard.png

但是在我的build.gradle中根本沒(méi)有導(dǎo)入這些支持庫(kù)呀,難道是我依賴(lài)了其他的庫(kù),然后其他庫(kù)依賴(lài)了這些庫(kù)導(dǎo)致被引入的嗎?

然后我嘗試著將這些版本不一致的support庫(kù),一個(gè)一個(gè)的添加到build.gradle中,并且明確指定其版本號(hào)為26.1.0

    api "org.jetbrains.anko:anko:$anko_version"
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    //Rx系列
    api "io.reactivex.rxjava2:rxjava:$rxjava_version"
    api "io.reactivex.rxjava2:rxandroid:$rxandroid_version"

    //Retrofit框架 和 okhttp框架
    api "com.squareup.retrofit2:retrofit:$retrofit_version"
    api "com.squareup.retrofit2:converter-gson:$retrofit_version"

    //api "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
    api "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"

    //okHttp
    api "com.squareup.okhttp3:logging-interceptor:$okhttp_version"
    api "com.squareup.okhttp3:okhttp:$okhttp_version"

    //dagger2
    compile "com.google.dagger:dagger:$dagger2_version"
    kapt "com.google.dagger:dagger-compiler:$dagger2_version"

    //RxLifeCycle
    api "com.trello.rxlifecycle2:rxlifecycle-kotlin:$rx_lifecycle_version"
    api "com.trello.rxlifecycle2:rxlifecycle-components:$rx_lifecycle_version"

    //Glide
    api "com.github.bumptech.glide:glide:$glide_version"
    kapt "com.github.bumptech.glide:compiler:$glide_version"

    //由于導(dǎo)入支持庫(kù)之后,版本不一致導(dǎo)致編譯不通過(guò)。現(xiàn)在統(tǒng)一所有支持庫(kù)的版本號(hào)一致為:26.1.0
    api "com.android.support:animated-vector-drawable:26.1.0"
    api "com.android.support:appcompat-v7:26.1.0"
    api "com.android.support:support-core-utils:26.1.0"
    api "com.android.support:support-annotations:26.1.0"
    api "com.android.support:support-compat:26.1.0"
    api "com.android.support:support-core-ui:26.1.0"
    api "com.android.support:support-fragment:26.1.0"
    api "com.android.support:support-v4:26.1.0"
    api "com.android.support:recyclerview-v7:26.1.0"

由于是用Android Studio 3.0.1在Deepin linux系統(tǒng)上操作的,當(dāng)時(shí)我就沒(méi)管了,今天來(lái)公司,用公司 Windows 10上面的Android Studio 3.3導(dǎo)入 之后這些不同版本號(hào)的庫(kù)依舊存在于External Libraries中,每個(gè)庫(kù)都有2分,而且版本號(hào)不一致。

clipboard.png

請(qǐng)問(wèn)大佬們,怎么解決這個(gè)問(wèn)題啊,我是多Module模式,使用的api方式引入, 會(huì)不會(huì)是這方面的問(wèn)題? 求解!~~~

回答
編輯回答
魚(yú)梓

在Gradle中強(qiáng)制指定依賴(lài)版本就行

configurations.all {
   resolutionStrategy {
       force 'com.android.support:recyclerview-v7:26.1.0'
   }
}
2017年5月27日 19:02
編輯回答
糖豆豆

改成implementation

2017年3月27日 12:40