1、将Android Studio 升级到3.4(3.2以上即可),并且将gradle升级到3.4.1(3.2.0以上即可),设置targetSdkVersion 28,Project的build.gradle中classpath ‘com.android.tools.build:gradle:3.4.1’。
android:exported=“true”
android:label=“@string/app_name”
2、修改gradle.properties
android.useAndroidX=true 表示启用 androidx
android.enableJetifier=true 表示将依赖包也迁移到androidx 。如果取值为false,表示不迁移依赖包到androidx,但在使用依赖包中的内容时可能会出现问题,如果项目中没有使用任何三方依赖,可以设置为false。
使用android.enableJetifier=true将项目中使用的第三方库也迁移到 Androidx,迁移后还需要 Flie -> Invalidate Caches /Restart 一下。
3、开始替换
import android.support.v7.app.AlertDialog
修改成 → import androidx.appcompat.app.AlertDialog
import android.support.v7.app.AppCompatActivity
修改成 → import androidx.appcompat.app.AppCompatActivity
替换前 替换后
import android.support.v4.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager; import androidx.viewpager.widget.ViewPager;
import android.support.v4.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentPagerAdapter;
import android.support.v4.app.Fragment; import androidx.fragment.app.Fragment;
import android.support.v4.view.PagerAdapter; import androidx.viewpager.widget.PagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import android.support.v7.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import android.support.v7.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
android.support.v7.widget.AppCompatImageView androidx.appcompat.widget.AppCompatImageView;
import android.support.v7.widget.OrientationHelper; import androidx.recyclerview.widget.OrientationHelper;
import android.support.v4.content.ContextCompat; import androidx.core.content.ContextCompat;
import android.support.v7.widget.DividerItemDecoration; import androidx.recyclerview.widget.DividerItemDecoration;
import android.support.v4.view.ViewPager.OnPageChangeListener; import androidx.viewpager.widget.ViewPager;
import android.support.v4.content.FileProvider; import androidx.core.content.FileProvider;
android.support.v4.view.ViewPager androidx.viewpager.widget.ViewPager
除了修改support库的路径,还要修改support控件的import导包代码,像AppCompatActivity原来的import语句是下面这样的:
import android.support.v7.app.AppCompatActivity;
复制
启用AndroidX之后,导入AppCompatActivity的代码要改成下面这样:
import androidx.appcompat.app.AppCompatActivity;
复制
详细的support控件的新旧对应关系见下表:
支持控件的旧包名
支持控件的旧包名
android.support.v4.app.Fragment
androidx.fragment.app.Fragment
android.support.v4.app.FragmentActivity
androidx.fragment.app.FragmentActivity
android.support.v4.app.FragmentManager
androidx.fragment.app.FragmentManager
android.support.v4.app.FragmentPagerAdapter
androidx.fragment.app.FragmentPagerAdapter
android.support.v4.view.ViewPager
androidx.viewpager.widget.ViewPager
android.support.v4.view.PagerAdapter
androidx.viewpager.widget.PagerAdapter
android.support.v4.view.PagerTabStrip
androidx.viewpager.widget.PagerTabStrip
android.support.v4.view.PagerTitleStrip
androidx.viewpager.widget.PagerTitleStrip
android.support.v7.app.AppCompatActivity
androidx.appcompat.app.AppCompatActivity
android.support.v7.widget.Toolbar
androidx.appcompat.widget.Toolbar
android.support.v7.widget.RecyclerView
androidx.recyclerview.widget.RecyclerView
android.support.v7.widget.GridLayoutManager
androidx.recyclerview.widget.GridLayoutManager
android.support.v7.widget.LinearLayoutManager
androidx.recyclerview.widget.LinearLayoutManager
android.support.v7.widget.StaggeredGridLayoutManager
androidx.recyclerview.widget.StaggeredGridLayoutManager
android.support.v7.widget.CardView
androidx.cardview.widget.CardView
android.support.v7.graphics.Palette
androidx.palette.graphics.Palette
android.support.v4.app.Fragment
androidx.fragment.app.Fragment
android.support.v4.view.ViewPager
androidx.viewpager.widget.ViewPager
android.support.constraint.ConstraintLayout
androidx.constraintlayout.widget.ConstraintLayout
android.support.v4.app.FragmentPagerAdapter
androidx.fragment.app.FragmentPagerAdapter
android.support.v4.app.FragmentStatePagerAdapter
androidx.fragment.app.FragmentStatePagerAdapter
android.support.annotation.DrawableRes
androidx.annotation.DrawableRes
android.support.v4.os.ParcelableCompat
androidx.core.os.ParcelableCompat
android.support.v4.os.ParcelableCompatCreatorCallbacks
androidx.core.os.ParcelableCompatCreatorCallbacks
android.support.v4.view.AccessibilityDelegateCompat
androidx.core.view.AccessibilityDelegateCompat
android.support.v4.view.MotionEventCompat
androidx.core.view.MotionEventCompat
android.support.v4.view.PagerAdapter
androidx.viewpager.widget.PagerAdapter
android.support.v4.view.VelocityTrackerCompat
androidx.core.view.VelocityTrackerCompat
android.support.v4.view.ViewCompat
androidx.core.view.ViewCompat
android.support.v4.view.ViewConfigurationCompat
androidx.core.view.ViewConfigurationCompat
android.support.v4.view.accessibility.AccessibilityEventCompat
androidx.core.view.accessibility.AccessibilityEventCompat
android.support.v4.view.accessibility.AccessibilityNodeInfoCompat
androidx.core.view.accessibility.AccessibilityNodeInfoCompat
android.support.v4.view.accessibility.AccessibilityRecordCompat
androidx.core.view.accessibility.AccessibilityRecordCompat
android.support.v4.widget.EdgeEffectCompat
androidx.core.widget.EdgeEffectCompat
android.support.v4.content.FileProvider
androidx.core.content.FileProvider
android.support.annotation.NonNull
androidx.annotation.NonNull
android.support.annotation.Nullable
androidx.annotation.Nullable
android.databinding.DataBindingUtil
androidx.databinding.DataBindingUtil
android.support.v4.app.AppOpsManagerCompat
androidx.core.app.AppOpsManagerCompat
android.support.annotation.ColorInt
androidx.annotation.ColorInt
android.support.v4.app.ActivityCompat
androidx.core.app.ActivityCompat
android.support.v4.content.ContextCompat
androidx.core.content.ContextCompat
android.support.v7.app.AppCompatActivity
androidx.appcompat.app.AppCompatActivity
android.databinding.BaseObservable
androidx.databinding.BaseObservable
android.support.v4.graphics.drawable.RoundedBitmapDrawable
androidx.core.graphics.drawable.RoundedBitmapDrawable
android.support.v7.widget.AppCompatImageView
androidx.appcompat.widget.AppCompatImageView
android.support.multidex.MultiDexApplication
androidx.multidex.MultiDexApplication
android.support.v7.widget.AppCompatTextView
androidx.appcompat.widget.AppCompatTextView
android.support.annotation.RequiresApi
androidx.annotation.RequiresApi
android.support.v4.content.PermissionChecker
androidx.core.content.PermissionChecker
android.support.v4.view.GestureDetectorCompat
androidx.core.view.GestureDetectorCompat
android.support.v7.widget.RecyclerView
androidx.recyclerview.widget.RecyclerView
android.databinding.Bindable
androidx.databinding.Bindable
android.databinding.ViewDataBinding
androidx.databinding.ViewDataBinding
android.support.v4.app.NotificationCompat
androidx.core.app.NotificationCompat
android.support.v4.content.LocalBroadcastManager
androidx.localbroadcastmanager.content.LocalBroadcastManager
android.support.v4.app.NotificationManagerCompat
androidx.core.app.NotificationManagerCompat
android.support.v4.view.PagerAdapter
androidx.viewpager.widget.PagerAdapter
android.support.v4.view.ViewCompat
androidx.core.view.ViewCompat
android.support.v4.widget.EdgeEffectCompat
androidx.core.widget.EdgeEffectCompat
android.support.v4.view.NestedScrollingParent
androidx.core.view.NestedScrollingParent
android.support.v4.view.MotionEventCompat
androidx.core.view.MotionEventCompat
android.support.v4.widget.NestedScrollView
androidx.core.widget.NestedScrollView
android.support.v7.widget.LinearLayoutManager
androidx.recyclerview.widget.LinearLayoutManager
android.support.v7.widget.StaggeredGridLayoutManager
androidx.recyclerview.widget.StaggeredGridLayoutManager
android.databinding.BindingAdapter
androidx.databinding.BindingAdapter
android.support.v4.widget.ScrollerCompat
androidx.core.widget.ScrollerCompat
android.support.v4.widget.SwipeRefreshLayout
androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android.support.v4.view.animation.FastOutLinearInInterpolator
androidx.interpolator.view.animation.FastOutLinearInInterpolator
android.support.v4.view.animation.FastOutSlowInInterpolator
androidx.interpolator.view.animation.FastOutSlowInInterpolator
android.support.v4.view.animation.LinearOutSlowInInterpolator
androidx.interpolator.view.animation.LinearOutSlowInInterpolator
android.support.annotation.IntDef
androidx.annotation.IntDef
android.support.annotation.LayoutRes
androidx.annotation.LayoutRes
android.support.annotation.StringRes
androidx.annotation.StringRes
android.support.design.widget.TabLayout
com.google.android.material.tabs.TabLayout
android.support.v4.util.Pools
androidx.core.util.Pools
android.support.v4.view.GravityCompat
androidx.core.view.GravityCompat
android.support.v4.widget.TextViewCompat
androidx.core.widget.TextViewCompat
android.support.v7.app.ActionBar
androidx.appcompat.app.ActionBar
android.support.v4.graphics.ColorUtils
androidx.core.graphics.ColorUtils
android.support.v7.widget.OrientationHelper
androidx.recyclerview.widget.OrientationHelper
// UDesk
android.support.v4.text.TextUtilsCompat
androidx.core.text.TextUtilsCompat
android.support.v4.app.LoaderManager
androidx.loader.app.LoaderManager
android.support.v4.content.CursorLoader
androidx.loader.content.CursorLoader
android.support.v4.content.Loader
androidx.loader.content.Loader
android.support.annotation.CheckResult
androidx.annotation.CheckResult
android.arch.lifecycle.MutableLiveData
androidx.lifecycle.MutableLiveData
android.arch.lifecycle.LiveData
android.arch.lifecycle.Observer
android.arch.lifecycle.ViewModelProviders
androidx.lifecycle.ViewModelProviders
android.support.v7.widget.DefaultItemAnimator
androidx.recyclerview.widget.DefaultItemAnimator
android.support.v7.widget.GridLayoutManager
androidx.recyclerview.widget.GridLayoutManager
android.support.v7.widget.AppCompatButton
androidx.appcompat.widget.AppCompatButton
android.support.v7.widget.SimpleItemAnimator
androidx.recyclerview.widget.SimpleItemAnimator
android.support.v7.widget.PagerSnapHelper
androidx.recyclerview.widget.PagerSnapHelper
android.support.design.widget.AppBarLayout
com.google.android.material.appbar.AppBarLayout
android.support.design.widget.CoordinatorLayout
androidx.coordinatorlayout.widget.CoordinatorLayout
android.support.v7.widget.Toolbar
androidx.appcompat.widget.Toolbar
android.support.design.widget.CollapsingToolbarLayout
com.google.android.material.appbar.CollapsingToolbarLayout
android.support.v7.widget.CardView
androidx.cardview.widget.CardView
android.support.annotation.FloatRange
androidx.annotation.FloatRange
android.support.v7.widget.helper.ItemTouchHelper
androidx.recyclerview.widget.ItemTouchHelper
android.support.v7.widget.AppCompatSeekBar
androidx.appcompat.widget.AppCompatSeekBar
android.support.v7.widget.AppCompatEditText
androidx.appcompat.widget.AppCompatEditText
android.support.design.widget.FloatingActionButton
com.google.android.material.floatingactionbutton.FloatingActionButton
android.support.annotation.AnyThread
androidx.annotation.AnyThread