当前位置: 首页 > news >正文

升级targetSdkVersion至33(以及迁移至Androidx)

1.设置 android.useAndroidX=true 和 android.enableJetifier=true
2.一键迁移至androidx:Refactor -> Migrate to Androidx
3.手动修改未能自动迁移到androidx的部分:

android.support.v4.view.ViewPager.PageTransformer -> androidx.viewpager.widget.ViewPager.PageTransformer

android.support.annotation.NonNull -> androidx.annotation.NonNull

android.support.annotation.Nullable -> androidx.annotation.Nullable

android.support.v4.content.ContextCompat -> androidx.core.content.ContextCompat

android.support.v7.widget.DividerItemDecoration -> androidx.recyclerview.widget.DividerItemDecoration

android.support.v7.widget.RecyclerView -> androidx.recyclerview.widget.RecyclerView

android.arch.lifecycle.MutableLiveData -> androidx.lifecycle.MutableLiveData

android.arch.lifecycle.ViewModel -> androidx.lifecycle.ViewModel

android.support.v7.widget.LinearLayoutManager -> androidx.recyclerview.widget.LinearLayoutManager

android.support.constraint.ConstraintLayout -> androidx.constraintlayout.widget.ConstraintLayout

android.support.constraint.Group -> androidx.constraintlayout.widget.Group

android.support.v4.widget.NestedScrollView -> androidx.core.widget.NestedScrollView

android.support.v4.widget.SwipeRefreshLayout -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout

android.support.constraint.Guideline -> androidx.constraintlayout.widget.Guideline

android.support.design.widget.CoordinatorLayout -> androidx.coordinatorlayout.widget.CoordinatorLayout

android.support.design.widget.AppBarLayout -> com.google.android.material.appbar.AppBarLayout

android.support.design.widget.CollapsingToolbarLayout -> com.google.android.material.appbar.CollapsingToolbarLayout

android.support.v7.widget.Toolbar -> androidx.appcompat.widget.Toolbar

android.support.v4.view.ViewPager -> androidx.viewpager.widget.ViewPager

android.support.multidex.MultiDexApplication -> androidx.multidex.MultiDexApplication

android.support.v4.view.PagerAdapter -> androidx.viewpager.widget.PagerAdapter

android.support.v7.util.DiffUtil -> androidx.recyclerview.widget.DiffUtil

android.support.v4.app.Fragment -> androidx.fragment.app.Fragment

android.support.v4.app.FragmentActivity -> androidx.fragment.app.FragmentActivity
android.support.annotation.IntDef -> androidx.annotation.IntDef

android.support.annotation.RequiresApi -> androidx.annotation.RequiresApi

android.support.v4.app.ActivityCompat -> androidx.core.app.ActivityCompat

android.support.v4.widget.Space -> androidx.legacy.widget.Space(为使用space,还需要implementation 'androidx.legacy:legacy-support-v4:1.0.0)

android.support.annotation.ColorRes -> androidx.annotation.ColorRes

android.support.annotation.StringRes -> androidx.annotation.StringRes

android.support.v7.widget.GridLayoutManager -> androidx.recyclerview.widget.GridLayoutManager

android.support.annotation.LayoutRes -> androidx.annotation.LayoutRes

android.support.v4.util.ArrayMap -> androidx.collection.ArrayMap

android.support.design.internal.BottomNavigationMenuView -> com.google.android.material.bottomnavigation.BottomNavigationMenuView

android.support.design.widget.BottomNavigationView -> com.google.android.material.bottomnavigation.BottomNavigationView

android.support.v7.widget.SimpleItemAnimator -> androidx.recyclerview.widget.SimpleItemAnimator

android.support.v8.renderscript. -> androidx.renderscript.

android.support.design.widget.FloatingActionButton -> com.google.android.material.floatingactionbutton.FloatingActionButton

android.support.v7.widget.PagerSnapHelper -> androidx.recyclerview.widget.PagerSnapHelper


4.更新 ButterKnife 和 ShadowLayout 库到androidx兼容版本

implementation 'com.jakewharton:butterknife:8.8.1' -> implementation 'com.jakewharton:butterknife:10.2.1'

annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' -> annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' 

5.升级gradle

com.android.tools.build:gradle:3.4.1 -> com.android.tools.build:gradle:7.1.2

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip -> distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip

6.根目录的build.gradle文件中的依赖路径全部改为https的

7.注销build.gradle文件中的自定义路径(gradle tool插件7.x版本好像不支持自定义路径)

variant.outputs.all {
            // 自定义输出路径
            if (variant.buildType.name == "release") {
                variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + File.separator + "app/build/outputs/apk/release")
            } else {
                variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + File.separator + "app/build/outputs/apk/debug")
            }
        }

8.适配webView

mWebSettings.setAppCachePath(appCachePath);

webView.getSettings().setAppCacheEnabled(false); -> webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

mWebSettings.setAppCacheEnabled(true) -> mWebSettings.setCacheMode(WebSettings.LOAD_DEFAULT);

9.适配截屏服务:

在manifest.xml文件中添加权限和service

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.MEDIA_PROJECTION" />

<service

            android:name=".xxxService"
            android:foregroundServiceType="mediaProjection"
            tools:node="replace"
            android:exported="false"/>

10.其他改动待补充


 

http://www.lryc.cn/news/177251.html

相关文章:

  • python3.11版本pip install ddddocr调用时报错got an unexpected keyword argument ‘det‘ 解决
  • 代理IP与Socks5代理:跨界电商之安全防护与智能数据引擎
  • 如何评估一个HR是否专业?看这些标准
  • WordPress主题开发( 八)之—— 模板循环详细用法
  • QT : 完成绘制时钟
  • 香港云服务器和日本云服务器哪个好?(详细对比)
  • Cross Attention和 Self- Attention 的区别?
  • 《从零开始的Java世界》02面向对象(基础)
  • pve关闭windows虚拟机慢
  • 【Django】 rest_framework接口开发流程及接口功能组成
  • Kafka Log存储解析以及索引机制
  • 广告电商模式:探索新商业模式,实现三方共赢
  • 动态线程池框架DynamicTp v1.1.4大版本发布,新增若干实用特性
  • 无线通信——Mesh自组网的多跳性
  • QA 云计算实验问题汇总
  • VEX —— Functions|Groups
  • JavaSE18——接口
  • 杭州亚运会开幕式惊现数字人火炬手,动捕设备迸发动画制作新动能
  • ptmalloc源码分析 - malloc/free函数的实战篇(12)
  • 博弈论(奇偶考虑法)+计数+DP(判定转dp):CF838C
  • 郁金香2021年游戏辅助技术中级班(一)
  • 加密货币交易所偿付能力的零知识证明
  • 软考网络工程师防火墙配置考点总结
  • 【IDEA】idea恢复pom.xml文件显示灰色并带有删除线
  • Python数据分析之Excel
  • NISP证书是什么?NISP含金量如何呢?
  • 操作系统备考学习 day6(2.3.2 - 2.3.4)
  • 家电行业 EDI:Miele EDI 需求分析
  • Android ConstraintLayout app:layout_constraintHorizontal_weight
  • FPGA行业应用一:LED控制器