纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

详解Android Studio3.5及使用AndroidX的一些坑

  2021-04-02 我要评论

google的更新优化往往会牵动一大批开发者的心。去年的androidx到今年studio3.5后都默认使用androidx了。其实对于我们开发者而言我们都只是调用他的api对我们的影响不大??!可是人性的习惯还是比较不那么容易改变的。现在我就来说说我遇到的一些坑吧。话说还是很严重。不知道androidx的请自行百度。

一、我们从新建一个项目说。

3.5新建项目是默认使用androidx的

看最后一样Use androidx.* artifacts。而且不能取消掉的。

那么到我们项目里这一点就对应于我们的 gradle.properties文件里的2句话

android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

1.1、那么这两句话代表什么呢

意思就是,你所用的support的包他会自动帮你迁移到androidx里。这里举个例子(接下来的例子出现的bug是针对系统库的)比如我们之前经常会用support里的AppBarLayout组合CoordinatorLayout实现很酷炫的效果。我们都知道这个是在support的design里。那么我们还是把它添加进去 注意:studio3.5后添加包会有点不一样

右键你的项目选中Open Module Setting

在打开的界面选中Dependencies点击里面的加号继续选择Library Dependency

在搜索框里搜索design。出现一堆(androidx的版本就是这样选择的)这里我们选择com.android.support

选择加入后studio会自动build并加入依赖。build.gradle会加上

implementation 'com.android.support:design:28.0.0'

注意:此时你去xml打上AppBarLayout并不会提示甚至根本就没有。个人觉得的是因为studio3.5优化的太好了不会随便你帮我们rebuild项目也不知道是不是bug;这个时候点击build --> Rebuild Project项目。之后xml使用正常如下

<com.google.android.material.appbar.AppBarLayout
  android:layout_width="match_parent"
  android:layout_height="?actionBarSize"/>

你会发现这里不是support的包点进去已经是迁移完的androidx的包。正是因为 gradle.properties 那两句话帮我们完成了。build.gradle显示的还是support的包怎么办

额外注意:就如上面说的那个类似bug的问题假如此时你再build.gradle去掉了这个依赖如果按之前的操作我们都会点击Sync Projec with Gradl Files去更新下。之后项目就没这个包了。没错studio3.5也是这样但是你再xml里继续打AppBarLayout后依旧会提示而且xml里不报错能运行。只是运行后才会崩溃报错。正确做法还是需要在去掉依赖后继续点击下Rebuild Project这时候才会正常。(感觉这个时候就是bug了)

二、一键将build.gradle的support包改成andoridx

点击 Refactor --> Migrate to AndroidX

后续一直点默认我这里就不贴图了直接说操作Migrate --> (选择我们的项目,点击OK) --> YES。后会弹出下图

点击Do Refactor。之后那么'com.android.support:design:28.0.0'会直接改变成响应的androidx包

implementation 'com.google.android.material:material:1.0.0'

三、可能有些人升级了studio但是却不像使用androidx

正确做法是把 gradle.properties 里那2句话去掉。同时把你的build.gradle改成你之前的support包。我们知道support包最后一版本是28。之后一切导包都不会在迁移了。是support就是support包。

希望本篇能帮助一些人。再放一个support迁移到androidx的对照 support To androidx

您可能感兴趣的文章:

相关文章

猜您喜欢

  • javascript数组的定义及操作实例

    想了解javascript数组的定义及操作实例的相关内容吗在本文为您仔细讲解的相关知识和一些Code实例欢迎阅读和指正我们先划重点:js,数组定义下面大家一起来学习吧。..
  • 详解怎样在Linux上一次性批量重命名一组文件

    想了解详解怎样在Linux上一次性批量重命名一组文件的相关内容吗在本文为您仔细讲解的相关知识和一些Code实例欢迎阅读和指正我们先划重点:linux,批量重命名,linux,重命名文件,linux,批量重命名文件下面大家一起来学习吧。..

网友评论

Copyright 2020 www.Shellfishsoft.com 【贝软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式