Compatibility problems encountered when accessing third-party libraries are summarized as follows:

1. The lowest supported SDK versions conflict

The Android Studio console reported the following exception during compilation:

Manifest merger failed : Uses-sdk :minSdkVersion 21 cannot be smaller than version 23 declared in library [:upgrade-1.0.11:] C: \ Users \ heiyulong \. Gradle \ caches \ transforms - 2 \ \ b00ccd2adbc43657c326c62176fbea22 \ jetified files - 2.1 - upgrade - 1.0.11 \ Androi dManifest.xml as the library might be using APIs not available in 21 Suggestion: use a compatible library with a minSdk of at most 21, or increase this project's minSdk version to at least 23, or use tools:overrideLibrary="com.vector.update_app" to force usage (may lead to runtime failures)Copy the code

You can know the cause of the error and three solutions:

Error cause:

Manifest merger failed : Uses-sdk :minSdkVersion 21 cannot be smaller than version 23 declared in library [:upgrade-1.0.11:]Copy the code

The imported third-party library [:upgrade-1.0.11:] has a minimum supported version 23 higher than my project’s minimum supported version 21, so this exception is thrown.

Solution:

Plan 1:

Suggestion: use a compatible library with a minSdk of at most 21

Modify the minimum supported version of the third-party library you are introducing to make sure it is consistent with the minimum version of your project.

However, if you introduce a third-party library that does not have source code and is not open source, the solution will not work

Scheme 2:

or increase this project’s minSdk version to at least 23,

Modify the minimum supported version of the main project to be consistent with the minimum supported version of the third-party library.

However, this scheme may not be what we want, as we want to be compatible with the lower version ++. ++

apply plugin: 'android' android {compileSdkVersion 21 buildToolsVersion "30.0.0" defaultConfig {applicationId "com.test.app" // MinSdkVersion 23 targetSdkVersion 30} buildTypes {release {runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } }Copy the code
Solution 3:

If you do not want to change the minimum supported version of your main project or the minimum supported version of a third-party library, see the following solution

or use tools:overrideLibrary=”com.vector.update_app” to force usage

Add to the tag in the androidmanifest.xml file

<uses-sdk tools:overrideLibrary="com.vector.update_app/>
Copy the code

Com.vector. update_app is the package name of the third-party library. If multiple libraries have this exception, separate them with commas, for example:

<uses-sdk tools:overrideLibrary="com.vector.update_app, xxx.xxx.xxx"/>
Copy the code

This allows you to ignore the minimum version limit when combining androidmanifest.xml in a project with androidManifest.xml in a third-party library.

  • to force usage (may lead to runtime failures)

However, all scenarios may cause runtime errors, because the third library is not compatible with SDK version 23 or less, resulting in runtime exceptions, preferably compatible with the unified minimum version of support.

2. FileProvider conflict adaptation

After the third-party library is added, the Android Studio compilation fails and the console error message is as follows:

> Task :app:processDevDebugManifest FAILED D:\project\test\android\app\src\main\AndroidManifest.xml:44:13-59 Error: Attribute provider#androidx.core.content.FileProvider@authorities value=(com.test.app.FileProvider) from Androidmanifest.xml: a scoffing 59 is also present at [: thirdsdk - 3.1.4:] AndroidManifest. XML: "- 65 value=(com.test.app.file.provider). Suggestion: add 'tools:replace="android:authorities"' to <provider> element at AndroidManifest.xml:42:9-51:20 to override. D:\project\test\android\app\src\main\AndroidManifest.xml:50:17-50 Error: Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/filepaths) from Androidmanifest.xml: thus - 50 is also present at [: thirdsdk - 3.1.4:] AndroidManifest. XML: did - 58 value=(@xml/sdk_file_provider). Suggestion: add 'tools:replace="android:resource"' to <meta-data> element at AndroidManifest.xml:48:13-50:53 to override. See http://g.co/androidstudio/manifest-merger for more information about the manifest merger. Execution failed for task ':app:processDevDebugManifest'. > Manifest merger failed with multiple errors, see logsCopy the code

Error cause:

According to the error log analysis, the reason is that the provider code is also added to the list file of the imported third-party library, resulting in a conflict. The following is the configuration of the provider in your project:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${packName}.FileProvider"
    android:exported="false"
    android:grantUriPermissions="true">

    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/filepaths" />
</provider>
Copy the code

Solution:

Add the following code to

tools:replace="android:authorities"
Copy the code

Add the following code to

tools:replace="android:resource"
Copy the code

Add the following code:

<provider android:name="androidx.core.content.FileProvider" android:authorities="${packName}.FileProvider" android:exported="false" tools:replace="android:authorities" android:grantUriPermissions="true"> <meta-data tools:replace="android:resource" android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" />  </provider>Copy the code

3, dependent library version conflict

After a new third-party platform SDK is added, the following errors are found during compilation and execution:

> Task :app:processDevDebugResources FAILED
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":1}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:2: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":16}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:17: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":47}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:48: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":69}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:70: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":113}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:114: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":158}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:159: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml","position":{"startLine":203}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_colorchooser_custom.xml:204: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml","position":{"startLine":1}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml:2: AAPT: error: resource dimen/md_content_padding_bottom (aka com.test.app:dimen/md_content_padding_bottom) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml","position":{"startLine":1}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml:2: AAPT: error: resource dimen/md_content_padding_top (aka com.test.app:dimen/md_content_padding_top) not found.\n    ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml","position":{"startLine":12}}],"original":"C:\\Users\\account\\.gradle\\caches\\transforms-2\\files-2.1\\d877ae290287c8ae9b2122602fbea4e2\\jetified-commons-0.9.4.5\\res\\layout\\md_stub_inputpref.xml:13: AAPT: error: resource dimen/md_content_padding_bottom (aka com.test.app:dimen/md_content_padding_bottom) not found.\n    ","tool":"AAPT"}

Execution failed for task ':app:processDevDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     C:\Users\heiyulong\.gradle\caches\transforms-2\files-2.1\d877ae290287c8ae9b2122602fbea4e2\jetified-commons-0.9.4.5\res\layout\md_stub_colorchooser_custom.xml:2: AAPT: error: resource dimen/md_title_frame_margin_bottom (aka com.test.app:dimen/md_title_frame_margin_bottom) not found.
Copy the code

Error analysis:

Based on error log analysis, the key information is jetified- Commons-0.9.4.5 that the library is missing a resource file;

In the External Libraries section of the Project bar on the left of Android Studio, you can see that there are two versions of the library dependencies, presumably due to the introduction of a different support library than the current build number

Check the dependency library information of the newly introduced SDK, there is indeed the introduction of version 3.3.0 library

dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) // Material Dialogs implementation 'com.afollestad. Material - Dialogs :core:3.3.0' implementation 'com. Afollestad. Material - dialogs: input: 3.3.0' implementation 'com. Afollestad. Material - dialogs: lifecycle: 3.3.0'}Copy the code

Com.afollestad. Material – Dialogs: Commons :0.9.4.5

However, I did not find the place where this library was introduced, so I guess other third-party SDKS introduced rely on this library, but how to quickly locate the dependence of the query library?

View library dependencies:

Open the Terminal panel in Android Studio and enter the following command:

gradlew clean app:dependencies
Copy the code

App is the concrete Module.

Press Enter and run the following command:

  • X.X.X (*) The dependency already exists and will not be repeated.
  • X.X.X -> X.X.X The dependent version is replaced by the version indicated by the arrow.
  • X.X.X -> X.X.X (*) The dependency version is replaced by the version indicated by the arrow, and the dependency is not repeated.
|    +--- project :baijiayun
|    |    +--- com.baijiayun.live:liveplayer-sdk-ui:2.4.3
|    |    |    +--- com.baijiayun.live:liveplayer-sdk-core:2.5.2
|    |    |    |    +--- com.baijia.player:bjyrtcengine-liveplayer:1.1.18
|    |    |    |    |    +--- com.google.code.gson:gson:2.8.5 -> 2.8.6
|    |    |    |    |    +--- log4j:log4j:1.2.17
|    |    |    |    |    +--- de.mindpipe.android:android-logging-log4j:1.0.3
|    |    |    |    |    +--- com.squareup.okhttp3:okhttp:3.11.0 -> 4.4.0 (*)
|    |    |    |    |    +--- com.baijia.player:bj-video-player:2.0.4
|    |    |    |    |    +--- com.baijia.player:baijiayun-webrtc:1.0.28685.m77.14
|    |    |    |    |    +--- com.baijia.player:bjyrtcsdk-liveplayer:1.1.17
|    |    |    |    |    |    +--- com.google.code.findbugs:jsr305:2.0.1 -> 3.0.2
|    |    |    |    |    |    +--- com.baijia.player:baijiayun-webrtc:1.0.28685.m77.14
|    |    |    |    |    |    \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*)
|    |    |    |    |    +--- io.agora.rtc:full-sdk:2.9.0.106
|    |    |    |    |    +--- com.baijia.player:bjyrtcengine-depends:2.9.0.106
|    |    |    |    |    +--- com.baijia.player:LiteAVSDK_TRTC:7.2.8951
|    |    |    |    |    \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*)
|    |    |    |    +--- com.baijia.player:bjslavsdk-liveplayer:1.1.265
|    |    |    |    |    \--- com.baijia.player:bj-video-player:2.0.3 -> 2.0.4
|    |    |    |    +--- com.tencent.tbs.tbssdk:sdk:43697
|    |    |    |    +--- com.baijia.common:common-networkv2:2.0.1
|    |    |    |    |    +--- com.squareup.okhttp3:okhttp:3.8.1 -> 4.4.0 (*)
|    |    |    |    |    \--- com.baijia.common:common-cache:1.1.5
|    |    |    |    |         \--- com.google.code.gson:gson:2.6.2 -> 2.8.6
|    |    |    |    +--- com.baijia.common:common-networkv2-ws:2.0.1
|    |    |    |    |    \--- com.baijia.common:common-networkv2:2.0.1 (*)
|    |    |    |    +--- com.baijia.common.glide:glide:4.8.1
|    |    |    |    |    +--- com.baijia.common.glide:gifdecoder:4.8.1
|    |    |    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |    +--- com.baijia.common.glide:disklrucache:4.8.1
|    |    |    |    |    +--- com.baijia.common.glide:annotations:4.8.1
|    |    |    |    |    \--- androidx.fragment:fragment:1.0.0 -> 1.2.5 (*)
|    |    |    |    +--- io.reactivex.rxjava2:rxjava:2.2.6
|    |    |    |    |    \--- org.reactivestreams:reactive-streams:1.0.2
|    |    |    |    +--- io.reactivex.rxjava2:rxandroid:2.1.1
|    |    |    |    |    \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
|    |    |    |    +--- com.github.pwittchen:reactivenetwork-rx2:2.1.0
|    |    |    |    |    +--- io.reactivex.rxjava2:rxjava:2.2.0 -> 2.2.6 (*)
|    |    |    |    |    +--- io.reactivex.rxjava2:rxandroid:2.0.2 -> 2.1.1 (*)
|    |    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    +--- com.orhanobut:logger:2.2.0
|    |    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*)
|    |    |    |    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
|    |    |    +--- com.android.databinding:baseLibrary:3.4.2 -> androidx.databinding:databinding-common:3.6.3
|    |    |    +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.50 -> 1.3.72 (*)
|    |    |    +--- com.baijia.common:common-networkv2:2.0.1 (*)
|    |    |    +--- com.baijia.common:common-networkv2-ws:2.0.1 (*)
|    |    |    +--- de.hdodenhof:circleimageview:2.2.0
|    |    |    +--- com.baijia.common:common-image-crop:1.3.2
|    |    |    |    +--- com.baijia.common:common-utils:1.0.0
|    |    |    |    +--- com.baijia.common:common-tools:1.0.0
|    |    |    |    |    +--- com.baijia.common:common-utils:1.0.0
|    |    |    |    |    \--- androidx.legacy:legacy-support-v4:1.0.0
|    |    |    |    |         +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         +--- androidx.media:media:1.0.0
|    |    |    |    |         |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*)
|    |    |    |    |         +--- androidx.legacy:legacy-support-core-utils:1.0.0
|    |    |    |    |         |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    +--- androidx.documentfile:documentfile:1.0.0
|    |    |    |    |         |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    +--- androidx.loader:loader:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 (*)
|    |    |    |    |         |    \--- androidx.print:print:1.0.0
|    |    |    |    |         |         \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         +--- androidx.legacy:legacy-support-core-ui:1.0.0
|    |    |    |    |         |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.customview:customview:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.viewpager:viewpager:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*)
|    |    |    |    |         |    +--- androidx.drawerlayout:drawerlayout:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0
|    |    |    |    |         |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    |    +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    |    \--- androidx.customview:customview:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.interpolator:interpolator:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0
|    |    |    |    |         |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    |    +--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    |    \--- androidx.interpolator:interpolator:1.0.0 (*)
|    |    |    |    |         |    +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0
|    |    |    |    |         |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    |    |         |    |    \--- androidx.core:core:1.0.0 -> 1.3.2 (*)
|    |    |    |    |         |    \--- androidx.cursoradapter:cursoradapter:1.0.0 (*)
|    |    |    |    |         \--- androidx.fragment:fragment:1.0.0 -> 1.2.5 (*)
|    |    |    |    +--- com.baijia.common.glide:glide:4.8.1 (*)
|    |    |    |    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
|    |    |    |    \--- androidx.legacy:legacy-support-v4:1.0.0 (*)
|    |    |    +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
|    |    |    +--- io.reactivex.rxjava2:rxandroid:2.1.1 (*)
|    |    |    +--- com.afollestad.material-dialogs:commons:0.9.4.5
|    |    |    |    +--- com.afollestad.material-dialogs:core:0.9.4.5 -> 3.3.0
|    |    |    |    |    +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*)
|    |    |    |    |    +--- androidx.recyclerview:recyclerview:1.1.0 (*)
|    |    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61
|    |    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 -> 1.4.10 (*)
|    |    |    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 -> 1.3.72
|    |    |    |    |              \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.4.10 (*)
|    |    |    |    +--- androidx.legacy:legacy-support-v13:1.0.0
|    |    |    |    |    \--- androidx.legacy:legacy-support-v4:1.0.0 (*)
|    |    |    |    \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*)
|    |    |    +--- com.google.code.gson:gson:2.8.2 -> 2.8.6

Copy the code

Right click on find to find the dependencies of the 0.9.4.5 library, one level up the hierarchy, and locate where the versions of the dependent libraries conflict.

Then upgrade the lower version library to the latest version.

< END >

[Evolution of Android]

Scan the QR code on wechat and follow my official account.