Android Studio 3.4升级后的运行问题解决办法
Android Studio 3.4推出有一段时间了,升级之后又有几个问题需要处理,说明如下:
一、把Gradle升级到AS3.4配套的5.1.1版本 1、手工下载Gradle4.6并解压,下载地址是http://downloads.gradle.org/distributions/gradle-5.1.1-all.zip。将下载的压缩包解压到本地目录,比如解压到D:Androidgradle-5.1.1 2、打开Android Studio,依次选择菜单“File”——“Settings”——“Build, Execution, Deployment”——“Gradle”,选中“Use Local gradle distribution”,然后输入Gradle5.1.1的解压目录。配置界面如下图所示:
二、在新建的项目中导入外部模块时报错 报错信息为“错误: 程序包android.support.v7.app不存在”,错误截图如下所示:
原因是AS3.4推出了AndroidX要取代原来的support库。创建新项目的时候,如果没有勾选“Use androidx.* artifacts”,那么导入外部模块不会报错;只有勾选了“Use androidx.* artifacts”,导入外部模块才会报上面的错。勾选界面如下图所示:
而且一旦勾选了“Use androidx.* artifacts”,后续创建其它项目的时候,该选项会变成默认选中,且为灰显不可取消,只有卸载重装AS才能恢复该选项。 如果不想卸载重装,也想继续使用AndroidX的话,则要在导入外部模块之后,修改模块的build.gradle,把原来support库的路径改为对应的AndroidX库的路径。举个例子 原来导入appcompat-v7的写法是下面这样:
implementation 'com.android.support:appcompat-v7:28.0.0'
启用AndroidX之后,导入appcompat-v7的写法要改成下面这样:
implementation 'androidx.appcompat:appcompat:1.0.0'
详细的support依赖库的新旧对应关系见下表:
支持库的旧路径 |
支持库的新路径 |
---|---|
com.android.support.constraint:constraint-layout |
androidx.constraintlayout:constraintlayout:1.1.2 |
com.android.support.test.espresso:espresso-core |
androidx.test.espresso:espresso-core:3.1.0 |
com.android.support.test:runner |
androidx.test:runner:1.1.0 |
com.android.support:appcompat-v7 |
androidx.appcompat:appcompat:1.0.0 |
com.android.support:cardview-v7 |
androidx.cardview:cardview:1.0.0 |
com.android.support:design |
com.google.android.material:material:1.0.0-rc01 |
com.android.support:multidex |
androidx.multidex:multidex:2.0.0 |
com.android.support:palette-v7 |
androidx.palette:palette:1.0.0 |
com.android.support:recyclerview-v7 |
androidx.recyclerview:recyclerview:1.0.0 |
com.android.support:support-v4 |
androidx.legacy:legacy-support-v4:1.0.0 |
除了修改support库的路径,还要修改support控件的import导包代码,像AppCompatActivity原来的import语句是下面这样的:
import android.support.v7.app.AppCompatActivity;
启用AndroidX之后,导入AppCompatActivity的代码要改成下面这样:
import androidx.appcompat.app.AppCompatActivity;
详细的support控件的新旧对应关系见下表:
支持控件的旧包名 |
支持控件的旧包名 |
---|---|
android.support.v4.app.Fragment |
androidx.fragment.app.Fragment |
android.support.v4.app.FragmentActivity |
androidx.fragment.app.FragmentActivity |
android.support.v4.app.FragmentManager |
androidx.fragment.app.FragmentManager |
android.support.v4.app.FragmentPagerAdapter |
androidx.fragment.app.FragmentPagerAdapter |
android.support.v4.view.ViewPager |
androidx.viewpager.widget.ViewPager |
android.support.v4.view.PagerAdapter |
androidx.viewpager.widget.PagerAdapter |
android.support.v4.view.PagerTabStrip |
androidx.viewpager.widget.PagerTabStrip |
android.support.v4.view.PagerTitleStrip |
androidx.viewpager.widget.PagerTitleStrip |
android.support.v7.app.AppCompatActivity |
androidx.appcompat.app.AppCompatActivity |
android.support.v7.widget.Toolbar |
androidx.appcompat.widget.Toolbar |
android.support.v7.widget.RecyclerView |
androidx.recyclerview.widget.RecyclerView |
android.support.v7.widget.GridLayoutManager |
androidx.recyclerview.widget.GridLayoutManager |
android.support.v7.widget.LinearLayoutManager |
androidx.recyclerview.widget.LinearLayoutManager |
android.support.v7.widget.StaggeredGridLayoutManager |
androidx.recyclerview.widget.StaggeredGridLayoutManager |
android.support.v7.widget.CardView |
androidx.cardview.widget.CardView |
android.support.v7.graphics.Palette |
androidx.palette.graphics.Palette |
- 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 文档注释
- 一起来学matlab-字符串操作 10_4 MATLAB中的字符串表示
- 一起来学演化计算-matlab优化函数fminunc
- 一起来学matlab-matlab学习笔记10 10_1一般运算符
- 每日手撕一道算法题-20. 有效的括号
- 一起来学matlab-数组取值 MATLAB中的字符串符号
- 递归解决遍历问题
- PHP中的include和require
- 一起来学matlab-matlab学习笔记10 10_2一般操作符和数据显示格式
- 一起来学matlab-matlab学习笔记10 10_3关系运算符和逻辑运算符
- 一篇文章学懂Shell脚本,最简明的教程在这里
- 一起来学matlab-matlab学习笔记10 10_5 通用字符串操作和比较函数
- 一个案例彻底弄懂如何正确使用 mysql inndb 联合索引
- 一起来学matlab-matlab学习笔记11 11_2 高维数组处理和运算 squeeze, ind2sub, sub2ind
- matlab结构体 rmfield,arrayfun,structfun,struct2cell,cell2struct
- PHP函数参数传递方法的具体改进技巧