背景
這個錯誤的原因是:androidx和 android.support同時存在。
首先,網上有很多解答說這樣處理:
在 gradle.properties 添加:
android.useAndroidX=true
android.enableJetifier=true
然后再build.gradle 中添加這個:
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
如果你是一個新項目,那么也許可以解決你的問題。
但如果是一個沒有使用androidx的項目,而且項目比較大的情況,這會使得你更加糟糕。
因為這個配置,會使你進入androidx 開發模式下。這意味着你需要全部升級,我想這會是一個大的工程,這將會讓你陷入一個泥潭中。
解決
我是在引入了一個庫后,出現這個問題。這個庫使用androidx,而我其他的庫使用android.support,使得我的項目無法build。
比如:
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
在高版本中,butterknife將使用androix。那么使用低版本可以解決這個問題,比如8.4.0。
ps:
在以后的版本中官方已經表明只支持androidx,如果項目不是非常大,或者有充足的時間,那么可以嘗試升級。
總結
讓我們在合理的條件下擁抱androidx。
