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了!

你可能感兴趣的:(插件配置,gradle)