Android开发经验谈Android技术知识Android开发

Android-AndroidX迁移及踩坑

2019-01-27  本文已影响8人  薛之涛

大家都知道Android support library 28是google发布的最后一版android.support的库了,原因是google同时发布了androidx 1.0.0 第一个正式版本。发布androidx的理由是:Support包依赖混乱,AndroidX是对Support的整理。所以早晚都要把项目依也迁移到 Androidx ,而我也将项目迁移到了AndroidX包,这里记录一下步骤和遇到的问题。

提前准备

AndroidX的迁移要求在在AndroidStudio 3.2 或更高版本中执行,要求的targetSdkVersion版本为9.0即28.也就是我们的 classpath 'com.android.tools.build:gradle:3.2.0'要3.2.0或者更高。
也就时在我升级tools.build的时候遇到了问题:始终下载失败3.2.0,不知道咋回事,困扰了好久?
这个问题的解决参考:https://www.cnblogs.com/whycxb/p/9760805.html
最终的解决办法是:

Apply即可,然后你就可以下载tool.build:gradle3.2.0即以上版本了。

迁移项目

如果你的项目已经开发部分了想引入AndroidX包的支持,只需要两步:
第一步:.在你的 gradle.properties 文件中添加:

## 表示使用 androidx
android.useAndroidX=true
##表示将第三方的依赖库也迁移到 androidx,如果你的项目中没有依赖库可以设置为false
android.enableJetifier=true

第二步:.菜单栏 Refactor -> Migrate to Androidx 就可以了,Android Studio 会自动把你项目中的依赖切换到 Androidx,并且修改项目中使用到依赖库的路径。

项目踩坑

找了半天才发现是buterknife的问题,还好butterknife已经添加了androidX的支持,只需要升级到最新的版本就好了,如:


image.png

另外在app的build.gradle中:


image.png

(2).还有Glide依赖也要改变,glide也添加了AndroidX的支持:


image.png

代码中的写法也变了,需要通过一个RequestOptions:

     //升级到4.8版本之后的新写法
        RequestOptions requestOptions = new RequestOptions()
                .placeholder(R.mipmap.ic_launcher)
                .error(R.drawable.errorview)
                .fallback(new ColorDrawable(Color.RED));

        Glide.with(mContext).load(imgUrl[position]).apply(requestOptions).into(imageView);

(3).其他类似 比如dagger 等注解冲突的,要不添加最新支持androidX的依赖,要不降低版本版本。

早点开始你的AndroidX迁移之旅吧。

上一篇 下一篇

猜你喜欢

热点阅读