2019-07-02

【Android Studio】Dependencies using groupId com.android.support and androidx.* can not be combined ...

參考資料 ----
Migrating to AndroidX


隨著 Android Studio 更新 Gradle Version5.1.1,在 app 層級的 build.gradle 出現了錯誤



把滑鼠移到 com.android.support:support-v4:28.0.0 的紅底線,出現的說明
,老人家有閱讀障礙,所以把說明做了斷行,如下:
Dependencies using groupId com.android.support and androidx.* can not be combined 
but found 
IdeMavenCoordinates
{
 myGroupId='com.android.support', 
 myArtifactId='asynclayoutinflater', 
 myVersion='28.0.0', 
 myPacking='aar', 
 myClassifier='null'
} 

and 

IdeMavenCoordinates
{
 myGroupId='androidx.localbroadcastmanager', 
 myArtifactId='localbroadcastmanager', 
 myVersion='1.0.0', 
 myPacking='aar', 
 myClassifier='null'
}

 incompatible dependencies less... (Ctrl+F1) 

 Inspection info:
 There are some combinations of libraries, 
 or tools and libraries, 
 that are incompatible, 
 or can lead to bugs.
 
 One such incompatibility is compiling with a version of the Android support libraries that is not the latest version
 (or in particular, a version lower than your targetSdkVersion).  
 
 Issue id: GradleCompatible



大意好像是說我的專案所相依的函式庫出現衝突!一個是 com.android.support,一個是 androidx.localbroadcastmanager,印象中 androidx. 開頭的函式庫是 jetpack 在用的;可是一來我還不懂 jetpack,所以沒改用 jetpack,二來是我的專案也沒使用 jetpack......

爬了好多文,嘗試加入設定,讓 Android Studio 明確使用來自 com.android.support,或是排除引用 androidx. 開頭的,不過都失敗。

Dependencies using groupId com.android.support and androidx.* can not be combined 搜尋,跳出了 Migrating to AndroidX 這一篇,看似要開發者改用這個。

依照指示,在該頁的 Artifact mappings 置換成 AndroidX
 
...
...

dependencies {
    // implementation 'com.android.support:support-v4:28.0.0'
    // implementation "com.android.support:customtabs:28.0.0"
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.browser:browser:1.0.0'

 


就 Sync 成功了,不知道是不是正解,提供遇到同樣問題的朋友參考。