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

 更新时间:2019年11月10日 14:28:10   作者:岩浆李的游鱼leo2  
这篇文章主要介绍了详解Android Studio3.5及使用AndroidX的一些坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • android利用xml实现分割线

    android利用xml实现分割线

    这篇文章主要介绍了android利用xml实现分割线的方法,如何用xml产生一个分割线?感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Android使用OKHttp包处理HTTP相关操作的基本用法讲解

    Android使用OKHttp包处理HTTP相关操作的基本用法讲解

    这篇文章主要介绍了Android使用OKHttp包处理HTTP相关操作的基本用法讲解,包括操作如何利用OKHttp操作HTTP请求与处理缓存等内容,需要的朋友可以参考下
    2016-07-07
  • Android Toast的用法总结(五种用法)

    Android Toast的用法总结(五种用法)

    本篇文章主要介绍了Android Toast的用法总结(五种用法),android toast几种使用方法 toast经常会用到,今天做个总结,特别是自定义toast的布局,值得一看。
    2017-01-01
  • Android 滑动拦截实例代码解析

    Android 滑动拦截实例代码解析

    本文给大家分享一段实例代码解析android 滑动拦截功能的实现方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • flutter实现底部抽屉效果

    flutter实现底部抽屉效果

    这篇文章主要为大家详细介绍了flutter实现底部抽屉效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android Service控件用法实例分析

    Android Service控件用法实例分析

    这篇文章主要介绍了Android Service控件用法,较为详细的分析了Service控件的功能、定义、使用方法与注意事项,需要的朋友可以参考下
    2016-06-06
  • Android调用OpenCV2.4.10实现二维码区域定位

    Android调用OpenCV2.4.10实现二维码区域定位

    这篇文章主要为大家详细介绍了Android调用OpenCV 2.4.10实现二维码区域定位,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • PowerManagerService之手动灭屏流程示例分析

    PowerManagerService之手动灭屏流程示例分析

    这篇文章主要为大家介绍了PowerManagerService之手动灭屏流程的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • android实现可上下回弹的scrollview

    android实现可上下回弹的scrollview

    这篇文章主要为大家详细介绍了android实现可上下回弹的scrollview,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • RecyclerView嵌套RecyclerView滑动卡顿的解决方法

    RecyclerView嵌套RecyclerView滑动卡顿的解决方法

    这篇文章主要为大家详细介绍了RecyclerView嵌套RecyclerView滑动卡顿的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12

最新评论