import android.support.v7.app.AppcompatActivity报错时,
试试导入
import androidx.appcompat.app.AppCompatActivity;
参考 https://blog.csdn.net/aqi00/article/details/94661015
Android Studio 3.4推出有一段时间了,升级之后又有几个问题需要处理,说明如下:
一、把Gradle升级到AS3.4配套的5.1.1版本
1、手工下载Gradle4.6并解压,下载地址是http://downloads.gradle.org/distributions/gradle-5.1.1-all.zip。将下载的压缩包解压到本地目录,比如解压到D:\Android\gradle-5.1.1
2、打开Android Studio,依次选择菜单“File”——“Settings”——“Build, Execution, Deployment”——“Gradle”,选中“Use Local gradle distribution”,然后输入Gradle5.1.1的解压目录。配置界面如下图所示:填完之后单击界面右下角的Apply按钮。
二、在新建的项目中导入外部模块时报错
报错信息为“错误: 程序包android.support.v7.app不存在”,错误截图如下所示:
原因是AS3.4推出了AndroidX要取代原来的support库。创建新项目的时候,如果没有勾选“Use androidx.* artifacts”,那么导入外部模块不会报错;只有勾选了“Use androidx.* artifacts”,导入外部模块才会报上面的错。勾选界面如下图所示:而且一旦勾选了“Use androidx.* artifacts”,后续创建其它项目的时候,该选项会变成默认选中,且为灰显不可取消,只有卸载重装AS才能恢复该选项。
如果不想卸载重装,也想继续使用AndroidX的话,则要在导入外部模块之后,修改模块的build.gradle,把原来support库的路径改为对应的AndroidX库的路径。举个例子
原来导入appcompat-v7的写法是下面这样:implementation 'com.android.support:appcompat-v7:28.0.0'启用AndroidX之后,导入appcompat-v7的写法要改成下面这样:
implementation 'androidx.appcompat:appcompat:1.0.0'详细的support依赖库的新旧对应关系见下表:
支持库的旧路径 支持库的新路径 com.android.support.constraint:constraint-layout androidx.constraintlayout:constraintlayout:1.1.2 com.android.support.test.espresso:espresso-core androidx.test.espresso:espresso-core:3.1.0 com.android.support.test:runner androidx.test:runner:1.1.0 com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0 com.android.support:cardview-v7 androidx.cardview:cardview:1.0.0 com.android.support:design com.google.android.material:material:1.0.0-rc01 com.android.support:multidex androidx.multidex:multidex:2.0.0 com.android.support:palette-v7 androidx.palette:palette:1.0.0 com.android.support:recyclerview-v7 androidx.recyclerview:recyclerview:1.0.0 com.android.support:support-v4 androidx.legacy:legacy-support-v4:1.0.0
除了修改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.v4.content.FileProvider androidx.core.content.FileProvider 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.design.widget.AppBarLayout com.google.android.material.appbar.AppBarLayout android.support.design.widget.CollapsingToolbarLayout com.google.android.material.appbar.CollapsingToolbarLayout android.support.design.widget.CoordinatorLayout androidx.coordinatorlayout.widget.CoordinatorLayout android.support.design.widget.CutoutDrawable com.google.android.material.textfield.CutoutDrawable android.support.design.widget.FloatingActionButton com.google.android.material.floatingactionbutton.FloatingActionButton android.support.design.widget.NavigationView com.google.android.material.navigation.NavigationView android.support.design.widget.Snackbar com.google.android.material.snackbar.Snackbar android.support.design.widget.TabLayout com.google.android.material.tabs.TabLayout
发表评论