我可以使用与 Androidx 项目一起使用 android 支持的库吗。

我知道,androidx 和支持依赖性会导致 multidex 错误 我们不能同时使用 android 和 android 支持。所以我完全转移到安卓系统。但是我的一个依赖库使用了 android 支持“ lottie”。

在上面的情况下我们可以做什么? 我应该从我的项目中删除“乐蒂”。

下面是我的等级

defaultConfig {
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}


ext{
lottieVersion = "2.5.4"
}




dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"


def androidx = "1.0.0-rc01"
api "androidx.constraintlayout:constraintlayout:1.1.2"
api "androidx.appcompat:appcompat:$androidx"
api "androidx.recyclerview:recyclerview:$androidx"
api "androidx.cardview:cardview:$androidx"
api "androidx.core:core-ktx:$androidx"
api "com.google.android.material:material:1.0.0-rc01"
implementation "com.google.code.gson:gson:2.8.5"
implementation "androidx.multidex:multidex:2.0.0"
implementation "com.airbnb.android:lottie:$lottieVersion"
}
150030 次浏览

您可以在项目上启用 Jetifier,它基本上将项目依赖项中的 Android Support Library依赖项与 AndroidX-ones 交换。(例如,您的 Lottie 依赖关系将从 Support 更改为 AnroidX)

来自 Android Studio 文档(https://developer.android.com/studio/preview/features/) :

The Android Gradle plugin provides the following global flags that you 可以在 gradle.properties 文件中设置:

  • UseAndroidX: 当设置为 true 时,这个标志表示从现在开始您想使用 AndroidX。如果没有旗帜, Android Studio 的行为就好像标志被设置为 false。
  • AbleleJetifier: 当设置为 true 时,这个标志表示您希望工具支持(来自 Android Gradle 插件)到 自动转换现有的第三方库 如果没有标志,Android Studio 的行为就是 if the flag were set to false.

论证的前提条件:

  • 你必须至少使用 Android Studio 3.2

要启用 jetifier,请将这两行添加到 gradle.properties文件中:

android.useAndroidX=true
android.enableJetifier=true

最后,请查看 AndroidX 的发布说明,因为 jetifier在一些库(例如 Dagger Android)上仍然存在一些问题: https://developer.android.com/topic/libraries/support-library/androidx-rn

你不必担心

只需在您的项目中启用 化名

  • 更新 Android Studio 到3.2.0或更新。
  • 打开 gradle.properties并在下面添加两行。

    android.enableJetifier=true
    android.useAndroidX=true
    

It will convert all support libraries of your dependency to AndroidX at run time (you may have compile time errors, but app will run).

手动添加 android.useAndroidX=trueandroid.enableJetifier=true给我带来困难的时间。因为它抛出一些错误或 Suggestion: add 'tools:replace="android:appComponentFactory"' to <application>

要在项目中启用 Jet-fire,在 android Studio 中有一个选项

选择您的项目-> 右击

应用程序—— > 重构—— > 迁移到 AndroidX

下图所示:

enter image description here

点击 Migrate to AndroidX后。

It will ask for confirmation and back up for your project.

enter image description here

最后一步,它将要求您执行重构。

enter image description here

完成重构后,检查 gradle.properties 是否有 android.useAndroidX=trueandroid.enableJetifier=true。如果没有,那么将这两行添加到 gradle.properties 文件中:

android.useAndroidX=true
android.enableJetifier=true

注意:-使用 Android Studio 进行升级,如果有此选项,则可以使用此选项 安卓工作室3.2及以后的版本

我在 Manif.xml 中的 application 标记中使用了这两行代码,并且成功了。

 tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

资料来源: https://github.com/android/android-ktx/issues/576#issuecomment-437145192

空气污染指数29。+ 使用 AndroidX 库。如果您使用的是 API 29。+ ,则不能删除这些。如果你想删除 AndroidX,那么你需要删除整个29。+ 来自 SDK 的 API:

SDK Settings

This will work fine.

gradle.properties中注释此行

UseAndroidX = true

gradle.properties文件中添加行

android.useAndroidX=true
android.enableJetifier=true

enter image description here enter image description here 请参阅 Https://developer.android.com/jetpack/androidx

如果你的项目不是 AndroidX (意思是 Appcompat)并且得到了这个错误,尝试降低引发这个错误的依赖版本,在我的例子中 play-services-location (“实现‘ com.google.android.gms: play-services-location: 17.0.0’”) ,我通过降级到 com.google.android.gms: play-services-location: 16.0.0’来解决这个问题

我以前遇到过类似的问题,就是 gradle.properties 文件不存在,只有 gradle.properties. txt 文件,所以我转到我的项目文件夹,复制并粘贴了 gradle.properties. txt 文件,但是没有。然后它终于工作了。

我在 gradle.properties 文件中添加了以下两行

android.useAndroidX=true
android.enableJetifier=true

然后我得到了下面的错误

error: package android.support.v7.app does not exist
import android.support.v7.app.AlertDialog;
^
                         

我已经删除了导入并添加了下面的代码行

import static android.app.AlertDialog.*;

And the classes which are extended from AppCompactActivity, added the below line. (For these errors you just need to press alt+enter in android studio which will import the correct library for you. Like this you can resolve all the errors)

import androidx.appcompat.app.AppCompatActivity;

如果在 xml 文件中使用了任何

<android.support.v7.widget.Toolbar

androidx.appcompat.widget.Toolbar代替

然后在你的 Java 代码中

import androidx.appcompat.widget.Toolbar;
  1. 在 build.gradle (Module: Application)中的 project 文件夹中

    • 修正了 CompileSdkVersion 为28的问题
    • 如果定义了 targetSdkVersion,则将其更改为28
    • 像这样修改之后,如果在顶部单击 Sync Now,就会出现一个错误。
  2. In the Refactor menu, click Migration to AndroidX to proceed with the migration.

  3. 之后,如果在 Project 文件夹中打开 gradle.properties,您将看到如下定义

    AbleleJetifier = true
    UseAndroidX = true

打开 gradle.properties 并添加以下两行。

android.enableJetifier=true
android.useAndroidX=true

你将面临一个新的问题,这是解决办法。 我的问题解决后,增加了 输出 = “ true”机器人,意图,分类,启动活动

<activity
android:name=".MainActivity"
android:exported="true"> // Add this line
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
  • gradle.properties文件中添加行

    android.useAndroidX=true
    android.enableJetifier=true
    
  • 如果在构建 apk 时出现任何错误,那么必须在 AndroidManifest.xml文件的所有活动中添加 android:exported="true"标记来导出活动。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.examplerealtime">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
    ...
    >
    <activity
    android:name=".MainActivity"
    ...
    android:exported="true">
    ...
    </activity>
    </application>
    </manifest>
    

非常简单。单击 Refactor,迁移到 androidX,然后按照提示操作。enter image description here

我得到了这个错误:

Caused by: com.android.builder.errors.EvalIssueException: Configuration `:app:debugRuntimeClasspath` contains AndroidX dependencies, but the `android.useAndroidX` property is not enabled, which may cause runtime issues.

I went to gradle.properties and added the following line:

android.useAndroidX=true

Then the error is different for me:

Duplicate class android.support.customtabs.ICustomTabsCallback found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.ICustomTabsCallback$Stub found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.ICustomTabsCallback$Stub$Proxy found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.ICustomTabsService found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.ICustomTabsService$Stub found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.ICustomTabsService$Stub$Proxy found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.IPostMessageService found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.IPostMessageService$Stub found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.customtabs.IPostMessageService$Stub$Proxy found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.3.2-runtime (androidx.core:core:1.3.2) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.3.2-runtime (androidx.core:core:1.3.2) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.3.2-runtime (androidx.core:core:1.3.2) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.3.2-runtime (androidx.core:core:1.3.2) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$CallbackHandler found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ConnectionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ConnectionCallback$ConnectionCallbackInternal found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ConnectionCallback$StubApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$CustomActionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$CustomActionResultReceiver found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ItemCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ItemCallback$StubApi23 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ItemReceiver found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImpl found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$2 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$3 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$4 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$5 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$6 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi21$7 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi23 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplApi26 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$2 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$3 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$4 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$5 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$6 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$MediaServiceConnection found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$MediaServiceConnection$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserImplBase$MediaServiceConnection$2 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaBrowserServiceCallbackImpl found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaItem found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaItem$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$MediaItem$Flags found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$SearchCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$SearchResultReceiver found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$ServiceBinderWrapper found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$Subscription found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$SubscriptionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$SubscriptionCallback$StubApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompat$SubscriptionCallback$StubApi26 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21$ConnectionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21$ConnectionCallbackProxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21$MediaItem found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21$SubscriptionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi21$SubscriptionCallbackProxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi23 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi23$ItemCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi23$ItemCallbackProxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi26 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi26$SubscriptionCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaBrowserCompatApi26$SubscriptionCallbackProxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompat$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompat$Builder found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompatApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompatApi21$Builder found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompatApi23 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaDescriptionCompatApi23$Builder found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$BitmapKey found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$Builder found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$LongKey found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$RatingKey found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompat$TextKey found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompatApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.MediaMetadataCompatApi21$Builder found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.ParceledListSliceAdapterApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.RatingCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.RatingCompat$1 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.RatingCompat$StarStyle found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.RatingCompat$Style found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaControllerCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaControllerCallback$Stub found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaControllerCallback$Stub$Proxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaSession found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaSession$Stub found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.IMediaSession$Stub$Proxy found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$Callback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$Callback$MessageHandler found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$Callback$StubApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$Callback$StubCompat found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerExtraData found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerImpl found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerImplApi21 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerImplApi21$ExtraBinderRequestResultReceiver found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerImplApi21$ExtraCallback found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class android.support.v4.media.session.MediaControllerCompat$MediaControllerImplApi23 found in modules media-1.0.0-runtime (androidx.media:media:1.0.0) and support-media-compat-28.0.0-runtime (com.android.support:support-media-compat:28.0.0)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter$ViewHolderItem found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuDialog found in modules browser-1.0.0-runtime (androidx.browser:browser:1.0.0) and customtabs-28.0.0-runtime (com.android.support:customtabs:28.0.0)
com.google.zxing.qrcode.detector.FinderPatternFinder$CenterComparator found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.detector.FinderPatternFinder$FurthestFromAverageComparator found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.detector.FinderPatternInfo found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.BlockPair found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.ByteMatrix found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.Encoder found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.Encoder$1 found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.MaskUtil found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.MatrixUtil found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
Duplicate class com.google.zxing.qrcode.encoder.QRCode found in modules core (core.jar) and core-3.3 (com.google.zxing:core:3.3.3)
    

Go to the documentation to learn how to Fix dependency resolution errors.

I added android.enableJetifier=true to gradle.properties and the errors above were gone.