AndroidX遷移

一 注意事項:

1.1 遷移前提

  • Android Studio build.gradle classpath 3.2.0及以上;
  • gradle 插件版本 4.6及以上;
  • compileSdkVersion 28及以上;
  • buildToolsVersion 28.0.2及以上;

1.2 注意幾個換了名字的依賴庫

com.android.support:design	  ->                
com.google.android.material:material:1.0.0-rc01

com.android.support:support-compat	  ->     
androidx.core:core:1.0.0
二 遷移AndroidX

2.1 遷移AndroidX配置
gradle.properties


#表示當前項目啓用androidx
android.useAndroidX=true  

#表示將依賴包也遷移到androidx
android.enableJetifier=true

2.2 Android Studio -> Refactor ->Migrate to AndroidX
後, 全局替換幾個常見的包,其它的地方可以先運行 報錯的地方刪除support依賴,自動導入即可
其次檢查 xml佈局文件和.java/.kt 文件 是否也需要替換,比如含 RecyclerView 、Toolbar、CardView 、Fragment的控件的layout.

import android.support.v7.widget.LinearLayoutManager; ->    
import androidx.recyclerview.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView.ViewHolder;->
import androidx.recyclerview.widget.RecyclerView.ViewHolder;

2.3 ButterKnife 處理 參考如下
當ButterKnife8.8.1碰到AndroidX怎麼辦

app/build.gradle

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    
    dependencies {
    	implementation 'com.jakewharton:butterknife:10.0.0'
        annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
       //kapt "com.jakewharton:butterknife-compiler:10.0.0" //kotlin
    }


2.4 引入第三方的庫 ,其中使用了RecyclerView 、Toolbar、CardView 、Fragment等,
如果後續支持AndroidX的 ,修改一下依賴即可,如

me.yokeyword:fragmentation:1.3.7 ->
me.yokeyword:fragmentationx:1.0.1

如果不支持,需要先下載源碼 再本地依賴,再將該第三方庫 Migrate to AndroidX
如 cn.bingoogolapple:bga-baseadapter:1.2.7@aar

2.5 編譯時依賴庫下載不下來時
可以先在 build.gradle 中添加一個如下aliyun阿里雲Maven倉庫 嘗試一下是否可以解決(跟這個無關的 最好也添加一下這個鏡像,速度會提升不少)

 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }

轉載
還在用android.support?該考慮遷移AndroidX了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章