android.support.v7.app.AppCompatActivity不能使用的解决办法
在构建项目时使用
android.support.v7.XX
android.support.v4.XX
发现在xml文件中,原先我最常使用的DrawerLayout变红了。同时在andriod虚拟机上运行时,报错
我不禁陷入了思考。在网络上冲浪好几天后,发现原来是android X搞的鬼。
现在在新版本中构建的时候,默认选用android X的形式。
具体情况,可以在app中的build.gradle中查看。
例如你可以看到这些新的依赖:
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
去Google android研发网站查找到了关于Android X的解释:
- AndroidX 对原始 Android 支持库进行了重大改进,后者现在已不再维护。
- androidx 软件包完全取代了支持库,不仅提供同等的功能,而且提供了新的库。
此外,AndroidX 还包括以下功能: - AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。支持库软件包已映射到对应的 androidx.* 软件包。有关所有旧类到新类以及旧构建工件到新构建工件的完整映射,请参阅软件包重构页面。
- 与支持库不同,androidx 软件包会单独维护和更新。从版本 1.0.0 开始,androidx 软件包使用严格的语义版本控制。您可以单独更新项目中的各个 AndroidX 库。
- 版本 28.0.0 是支持库的最后一个版本。我们将不再发布 android.support 库版本。所有新功能都将在 androidx 命名空间中开发。
怎么使用Android X呢?
例如:
把原先的
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
改为
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
就可以了
原先的很多都要去替换。包括在build.gradle、xml文件、java文件中。
具体详细的替换,请前往谷歌开发者网站查看。