Android Studio项目适配AndroidX(Android 9.0)的方法步骤
说在前面:
老项目、大项目适配Android X 注意了,一定要谨慎、谨慎、再谨慎。项目中用到的第三方库多的话会很麻烦,有些第三方库还没有适配Android X。
适配Android X的两种情况:一种是老项目适配Android X ,另外一种是新项目要求适配Android 9.0
硬核要求
Android studio 版本升级到3.2.0 以上的版本, distributionUrl的版本升级为 4.10.1以上 targetSdkVersion 28 gradle 插件的版本升级为 3.2.0以上
classpath 'com.android.tools.build:gradle:3.2.0'
这里以AS 3.4为例
第一步:
新项目,这步可以跳过。
compileSdkVersion 28
defaultConfig {
applicationId "gangqing.pu.xmxidaq"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
第二步:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
第三步:
在gradle.properties 中加入如下代码,表示支持Android X
android.useAndroidX=true
android.enableJetifier=true
第四步:
Android Studio —- Refactor—- Migrate to androidx,,一键转为 androidX
第五步:
支持Java 1.8
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
第六步:
修改布局,比如:ConstraintLayout
变化之前 |
AndroidX |
---|---|
<android.support.constraint.ConstraintLayout |
<androidx.constraintlayout.widget.ConstraintLayout |
注意:如果是老项目适配AndroidX,没有找到ConstraintLayout 的话,那么还需要在
中添加如下代码
dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
第四步之后, <android.support.constraint.ConstraintLayout 变为<androidx.constraintlayout.ConstraintLayout 这时你需要修改为 <androidx.constraintlayout.widget.ConstraintLayout |
以上就是本文的全部内容,希望对大家的学习有所帮助。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- APUE学习手札 编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理
- Python教程 | 最标准的地图调用方式(国家测绘局提供数据)
- Python数据可视化:Python大佬有哪些?
- 新手一看就懂的线程池
- 「面试」破(B)站之旅
- 想过为你的应用加上skywalking(链路监控)吗?
- 结合注意力机制的UNet降水短临预报框架
- 用Python全自动下载抖音视频!
- 如何实现一个高效的启发式算法?
- Python数据可视化:豆瓣电影TOP250
- 容器化 FRP 使用方案
- 任意图像转素描:Python分分钟实现
- Python数据科学:相关分析
- Python数据科学:正态分布与t检验
- Python数据科学:方差分析