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

这篇具有很好参考价值的文章主要介绍了升级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

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

android.arch.lifecycle.ViewModelProviders -> androidx.lifecycle.ViewModelProviders

android.arch.lifecycle.Observer -> androidx.lifecycle.Observer

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

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

android.support.v7.app.AppCompatActivity -> androidx.appcompat.app.AppCompatActivity

android.support.transition.Transition -> androidx.transition.Transition

android.support.v7.app.ActionBar -> androidx.appcompat.app.ActionBar

android.support.v7.app.AppCompatDelegate -> androidx.appcompat.app.AppCompatDelegate


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.其他改动待补充


 文章来源地址https://www.toymoban.com/news/detail-728668.html

到了这里,关于升级targetSdkVersion至33(以及迁移至Androidx)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?

    据上一篇文又是一个月过去了,虽说金九银十,但今年的氛围实在是太冷清了,能有一份工就不错了吧。但愿美元加息早点结束,经济早点好起来~ 上一篇所说内容是所有 App 安装到 Android14 设备上的影响和需要注意的内容,本篇接下来就要介绍当 targetSdkVersion 升级到 34 时,

    2024年02月03日
    浏览(38)
  • android 33 适配升级踩坑

    工程添加参考官网: 设置 Android 13 SDK  |  Android 开发者  |  Android Developers   在 Android Studio 中,您可以按如下方式安装 Android 13 SDK: 依次点击  Tools SDK Manager 。 在  SDK Platforms  标签页中,选择  Android Tiramisu Preview 。 在  SDK Tools  标签页中,选择  Android SDK Build-Tools 33 。

    2023年04月12日
    浏览(59)
  • Android 编译版本升级target 33

    应用编译版本: 环境编译版本: kotlin版本未改变,仅升级了,gradle编译版本。 build.gradle配置: gradle-wrapper.properties 配置: 升级步骤二:解决library编译问题 1、修改 library 的 build.gradle 文件 编译版本修改 kotlin配置修改,在build.gradle增加配置 viewBinding 不过可以全部配置。 2、

    2024年02月05日
    浏览(281)
  • Android app targetSdk从28升级到33问题汇总

    问题说明:targetsdkversion升级到12或者以上,设备运行系统至少12的话,如果不动态申请READ PHONE STATE权限则报错SecurityException android12 过程概述: 走到TelephonyRegistryManager#listenFromListener(int subId, @NonNull String pkg, @NonNull String featureId,@NonNull PhoneStateListener listener, @NonNull int events, boole

    2024年02月03日
    浏览(84)
  • Android Studio升级到Android API 33版本后,XML布局输入没有提示

      低版本的Android Studio升级到Android API 33版本后,XML布局输入没有提示。查一下我目前使用的Android Studio 是2021年发布,而Android API 33是2022年发布的,这是由低版本升级到高版本造成不兼容的问题。解决方法有两种: 第一种方法: 降低compileSdk的版本,但每次新建项目都要修改

    2024年02月10日
    浏览(72)
  • androidx.appcompat 升级到1.5.1 趟过的坑

    APP 要上google play,Android SDK 版本要升级到32;接了一个第三方SDK,不巧的是这个SDK引用appcompat是1.5.1,顺手把appcompat 包升级到1.5.1,这草率的一升,带来的不止一地鸡毛,还有精神上被残忍无情的蹂躏,心情上躁动不安,以及快要上线的APP给心理上带来的惴惴不安;再次吐槽

    2024年02月09日
    浏览(30)
  • Android高版本(targetSdkVersion >= 30)AIDL bindService失败问题

    (一)解决办法 方案1:         项目的 targetSdkVersion 版本修改到30以下。 方案2【推荐】:         CLIENT项目端,如果targetSdkVersion = 30,则在项目的manifest文件,添加queries这个标签: (二) 更详细的说明请跳转: AIDL报错,bindService一直连接不上、不起作用。_马占柱的博客-

    2024年02月07日
    浏览(37)
  • 【干货】Android系统定制基础篇:第六部分-Android扩展服务-AndroidX

    AndroidX 做为一个后台 Service 应用,开机自动运行,配合系统做一些定制化功能,并且对外提供 API。 主要功能: ● 硬件看门狗代理 ● USB Host/Device 切换 ● 4G 网络保活 ● 系统日志写入文件 ● 键值拦截 ● 启用应用 项目地址:https://github.com/aystshen/AndroidX 硬件看门狗代理主要

    2024年02月09日
    浏览(57)
  • Android Studio导入项目时导入包标红的问题androidx.core:core:1.6.0,例如:import androidx.core.app.ActivityCompat;

    其中 import androidx.core.app.ActivityCompat;import androidx.core.content.ContextCompat; import androidx.appcompat.app.AppCompatActivity;这些出现了红标, 这段代码中的红色波浪线通常表示代码中存在错误或警告。在这种情况下,可能是由于缺少必要的导入或库而导致的。 在这段代码中,缺少所需的依赖

    2024年02月14日
    浏览(38)
  • Android UpdateEngine 模块分析(三)升级触发以及Action机制介绍

    前面分析了 UpdateEngine 模块的编译和启动流程,对于 UpdateEngine 模块已经有了初步的了解,接下来我们从升级的功能出发,分析 UpdateEngine 的升级过程,升级过程的内容非常的多,准备从 UpdateEngine 的 Action 机制开始分析,UpdateEngine 的升级过程有很多步骤,每一个步骤由一个

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包