Android 开发工具

记一次Androidx工作适配

2019-06-18  本文已影响0人  galafan
问题

在开发中引入flutter module 的时候编译报错如下,经过网查找是 tagSdk 28情况下 Androidx的导入包问题

Duplicate class android.support.v4.app.INotificationSideChannel found in mod

思路

思路就是遇到问题第一时间去看 官网给出的迁移到 AndroidX的文章https://developer.android.com/jetpack/androidx/migrate
Androidx的概念
AndroidX 会将原始支持库 API 软件包映射到 androidx 命名空间。只有软件包和 Maven 工件名称发生了变化;类、方法和字段名称没有改变。

要了解如何借助 Android Studio 迁移现有代码,请参阅下面的使用 Android Studio 迁移现有项目

解决方案

1.在gradle.properties 文件中添加如下两行

android.useAndroidX = true
android.enableJetifier = true

2.然后借助 Android Studio 3.2 及更高版本,您可以通过从菜单栏中依次选择 Refactor > Migrate to AndroidX,快速迁移现有项目以使用 AndroidX。


Migrate to AndroidX

3.你会发现在项目根目录生成了一个压缩包,然后解压用Android Studio打开

image.png

4.在app.gradle文件下添加以下,是为了替换android.support的包

   implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0-alpha07'

5.在gradle sync后你会发现你的android.support的控件都报错了找不到了,这个时候你要去手动替换,别忘了xml文件的控件也要换掉

import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.exifinterface.media.ExifInterface;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.ActionBar;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.annotation.CallSuper;
import androidx.annotation.UiThread;
import androidx.recyclerview.widget.LinearLayoutManager;  

provider的name也要替换为Androidx的

 <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="com.test.my.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
文末

可参考:推荐 清明捉鬼 的文章《Androidx初尝及其新旧包对照表》( 分享自 @jianshucom ) https://www.jianshu.com/p/1466ebefe4d0?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=twitter
官方参考文章:https://developer.android.com/jetpack/androidx/migrate#migrate

上一篇 下一篇

猜你喜欢

热点阅读