Android X迁移

本文详细介绍如何将Android项目从旧的支持库迁移到AndroidX,包括使用AndroidStudio进行迁移的方法,以及在gradle.properties文件中配置迁移选项。同时,提供了一个详细的构件迁移映射表,帮助开发者了解旧构建构件与AndroidX构建构件之间的对应关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对已有的Android studio项目迁移

注意:如果我们将Android 项目的 compileSdkVersion=28 的话,依赖有非Android X构件的话,Android studio会提示的。当然新建项目并且指定是api 28的话,Android studio会默认依赖 Android X构件。

如果使用的是Android studio 3.2或者更高的版本的话,我们可以通过Refactor > Migrate to AndroidX 菜单快速的做迁移工作。

经过上一步工作后,如果还有一些maven库没有迁移到Android X名称下的话,你可以通过在gradle.properties 文件中添加以下两个属性,然后重新构建项目,这样的话Android studio也会帮我们做依赖的迁移。

android.useAndroidX=true
android.enableJetifier=true

如果迁移的项目没有依赖任何第三方依赖库,且不需要转换的话,我们可以设置标志android.useAndroidX 为 true 并且设置标志android.enableJetifierfalse


以下是Android构件迁移映射(2019/5/25官网下载):

Old build artifact

AndroidX build artifact

android.arch.core:common

androidx.arch.core:core-common:2.0.0-rc01

android.arch.core:core

androidx.arch.core:core:2.0.0-rc01

android.arch.core:core-testing

androidx.arch.core:core-testing:2.0.0-rc01

android.arch.core:runtime

androidx.arch.core:core-runtime:2.0.0-rc01

android.arch.lifecycle:common

androidx.lifecycle:lifecycle-common:2.0.0-rc01

android.arch.lifecycle:common-java8

androidx.lifecycle:lifecycle-common-java8:2.0.0-rc01

android.arch.lifecycle:compiler

androidx.lifecycle:lifecycle-compiler:2.0.0-rc01

android.arch.lifecycle:extensions

androidx.lifecycle:lifecycle-extensions:2.0.0-rc01

android.arch.lifecycle:livedata

androidx.lifecycle:lifecycle-livedata:2.0.0-rc01

android.arch.lifecycle:livedata-core

androidx.lifecycle:lifecycle-livedata-core:2.0.0-rc01

android.arch.lifecycle:reactivestreams

androidx.lifecycle:lifecycle-reactivestreams:2.0.0-rc01

android.arch.lifecycle:runtime

androidx.lifecycle:lifecycle-runtime:2.0.0-rc01

android.arch.lifecycle:viewmodel

androidx.lifecycle:lifecycle-viewmodel:2.0.0-rc01

android.arch.paging:common

androidx.paging:paging-common:2.0.0-rc01

android.arch.paging:runtime

androidx.paging:paging-runtime:2.0.0-rc01

android.arch.paging:rxjava2

androidx.paging:paging-rxjava2:2.0.0-rc01

android.arch.persistence.room:common

androidx.room:room-common:2.0.0-rc01

android.arch.persistence.room:compiler

androidx.room:room-compiler:2.0.0-rc01

android.arch.persistence.room:guava

androidx.room:room-guava:2.0.0-rc01

android.arch.persistence.room:migration

androidx.room:room-migration:2.0.0-rc01

android.arch.persistence.room:runtime

androidx.room:room-runtime:2.0.0-rc01

android.arch.persistence.room:rxjava2

androidx.room:room-rxjava2:2.0.0-rc01

android.arch.persistence.room:testing

androidx.room:room-testing:2.0.0-rc01

android.arch.persistence:db

androidx.sqlite:sqlite:2.0.0-rc01

android.arch.persistence:db-framework

androidx.sqlite:sqlite-framework:2.0.0-rc01

com.android.support.constraint:constraint-layout

androidx.constraintlayout:constraintlayout:1.1.2

com.android.support.constraint:constraint-layout-solver

androidx.constraintlayout:constraintlayout-solver:1.1.2

com.android.support.test.espresso.idling:idling-concurrent

androidx.test.espresso.idling:idling-concurrent:3.1.0

com.android.support.test.espresso.idling:idling-net

androidx.test.espresso.idling:idling-net:3.1.0

com.android.support.test.espresso:espresso-accessibility

androidx.test.espresso:espresso-accessibility:3.1.0

com.android.support.test.espresso:espresso-contrib

androidx.test.espresso:espresso-contrib:3.1.0

com.android.support.test.espresso:espresso-core

androidx.test.espresso:espresso-core:3.1.0

com.android.support.test.espresso:espresso-idling-resource

androidx.test.espresso:espresso-idling-resource:3.1.0

com.android.support.test.espresso:espresso-intents

androidx.test.espresso:espresso-intents:3.1.0

com.android.support.test.espresso:espresso-remote

androidx.test.espresso:espresso-remote:3.1.0

com.android.support.test.espresso:espresso-web

androidx.test.espresso:espresso-web:3.1.0

com.android.support.test.janktesthelper:janktesthelper

androidx.test.jank:janktesthelper:1.0.1

com.android.support.test.services:test-services

androidx.test:test-services:1.1.0

com.android.support.test.uiautomator:uiautomator

androidx.test.uiautomator:uiautomator:2.2.0

com.android.support.test:monitor

androidx.test:monitor:1.1.0

com.android.support.test:orchestrator

androidx.test:orchestrator:1.1.0

com.android.support.test:rules

androidx.test:rules:1.1.0

com.android.support.test:runner

androidx.test:runner:1.1.0

com.android.support:animated-vector-drawable

androidx.vectordrawable:vectordrawable-animated:1.0.0

com.android.support:appcompat-v7

androidx.appcompat:appcompat:1.0.0

com.android.support:asynclayoutinflater

androidx.asynclayoutinflater:asynclayoutinflater:1.0.0

com.android.support:car

androidx.car:car:1.0.0-alpha5

com.android.support:cardview-v7

androidx.cardview:cardview:1.0.0

com.android.support:collections

androidx.collection:collection:1.0.0

com.android.support:coordinatorlayout

androidx.coordinatorlayout:coordinatorlayout:1.0.0

com.android.support:cursoradapter

androidx.cursoradapter:cursoradapter:1.0.0

com.android.support:customtabs

androidx.browser:browser:1.0.0

com.android.support:customview

androidx.customview:customview:1.0.0

com.android.support:design

com.google.android.material:material:1.0.0-rc01

com.android.support:documentfile

androidx.documentfile:documentfile:1.0.0

com.android.support:drawerlayout

androidx.drawerlayout:drawerlayout:1.0.0

com.android.support:exifinterface

androidx.exifinterface:exifinterface:1.0.0

com.android.support:gridlayout-v7

androidx.gridlayout:gridlayout:1.0.0

com.android.support:heifwriter

androidx.heifwriter:heifwriter:1.0.0

com.android.support:interpolator

androidx.interpolator:interpolator:1.0.0

com.android.support:leanback-v17

androidx.leanback:leanback:1.0.0

com.android.support:loader

androidx.loader:loader:1.0.0

com.android.support:localbroadcastmanager

androidx.localbroadcastmanager:localbroadcastmanager:1.0.0

com.android.support:media2

androidx.media2:media2:1.0.0-alpha03

com.android.support:media2-exoplayer

androidx.media2:media2-exoplayer:1.0.0-alpha01

com.android.support:mediarouter-v7

androidx.mediarouter:mediarouter:1.0.0

com.android.support:multidex

androidx.multidex:multidex:2.0.0

com.android.support:multidex-instrumentation

androidx.multidex:multidex-instrumentation:2.0.0

com.android.support:palette-v7

androidx.palette:palette:1.0.0

com.android.support:percent

androidx.percentlayout:percentlayout:1.0.0

com.android.support:preference-leanback-v17

androidx.leanback:leanback-preference:1.0.0

com.android.support:preference-v14

androidx.legacy:legacy-preference-v14:1.0.0

com.android.support:preference-v7

androidx.preference:preference:1.0.0

com.android.support:print

androidx.print:print:1.0.0

com.android.support:recommendation

androidx.recommendation:recommendation:1.0.0

com.android.support:recyclerview-selection

androidx.recyclerview:recyclerview-selection:1.0.0

com.android.support:recyclerview-v7

androidx.recyclerview:recyclerview:1.0.0

com.android.support:slices-builders

androidx.slice:slice-builders:1.0.0

com.android.support:slices-core

androidx.slice:slice-core:1.0.0

com.android.support:slices-view

androidx.slice:slice-view:1.0.0

com.android.support:slidingpanelayout

androidx.slidingpanelayout:slidingpanelayout:1.0.0

com.android.support:support-annotations

androidx.annotation:annotation:1.0.0

com.android.support:support-compat

androidx.core:core:1.0.0

com.android.support:support-content

androidx.contentpager:contentpager:1.0.0

com.android.support:support-core-ui

androidx.legacy:legacy-support-core-ui:1.0.0

com.android.support:support-core-utils

androidx.legacy:legacy-support-core-utils:1.0.0

com.android.support:support-dynamic-animation

androidx.dynamicanimation:dynamicanimation:1.0.0

com.android.support:support-emoji

androidx.emoji:emoji:1.0.0

com.android.support:support-emoji-appcompat

androidx.emoji:emoji-appcompat:1.0.0

com.android.support:support-emoji-bundled

androidx.emoji:emoji-bundled:1.0.0

com.android.support:support-fragment

androidx.fragment:fragment:1.0.0

com.android.support:support-media-compat

androidx.media:media:1.0.0

com.android.support:support-tv-provider

androidx.tvprovider:tvprovider:1.0.0

com.android.support:support-v13

androidx.legacy:legacy-support-v13:1.0.0

com.android.support:support-v4

androidx.legacy:legacy-support-v4:1.0.0

com.android.support:support-vector-drawable

androidx.vectordrawable:vectordrawable:1.0.0

com.android.support:swiperefreshlayout

androidx.swiperefreshlayout:swiperefreshlayout:1.0.0

com.android.support:textclassifier

androidx.textclassifier:textclassifier:1.0.0

com.android.support:transition

androidx.transition:transition:1.0.0

com.android.support:versionedparcelable

androidx.versionedparcelable:versionedparcelable:1.0.0

com.android.support:viewpager

androidx.viewpager:viewpager:1.0.0

com.android.support:wear

androidx.wear:wear:1.0.0

com.android.support:webkit

androidx.webkit:webkit:1.0.0

原文:Android X迁移

AndroidX是一个由Google维护的框架,旨在提供更稳定、统一的Android库替代旧的Support Library。如果你需要将项目从使用旧版Support Library迁移AndroidX,可以按照以下步骤进行: 1. **添加 Gradle插件**:在`build.gradle (Module: app)`文件中,确保已经包含了AndroidX的插件: ```groovy plugins { id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' id 'androidx.navigation.safeargs' // 如果有使用导航组件 } ``` 然后,在`dependencies`块中添加对AndroidX的依赖。 2. **更新依赖**:移除旧版Support Library的依赖,例如`implementation 'com.android.support:appcompat-v7:28.0.0'`替换为: ```groovy implementation 'androidx.appcompat:appcompat:1.4.0' // 最新版本 ``` 3. **查找并替换**:运行`./gradlew app:generateSignedApk --variant=debug --no-daemon`命令,并检查构建日志中的警告,它们通常会指出哪些地方需要修改,比如`AppCompatActivity`替换为` AppCompatActivity`,`v7包`改为`material包`等。 4. **处理 FragmentTransaction 和 SupportV4 动态引入**:如果项目中有使用Fragment,确保导入`androidx.fragment:fragment-ktx`或手动替换`FragmentActivity`和`FragmentManager`。 5. **更新 AndroidManifest.xml**:在`<application>`标签内添加`tools:replace="android:allowBackup"`,然后替换`uses-sdk`部分的`support-version-sdk`为`targetSdkVersion`。 6. **测试应用**:完成以上步骤后,你需要重新编译和测试应用,确保功能正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值