Unity 对接 Android 打包编译 bug 总结之 android.support.v4 和 androidx 冲突问题

编译错误如下所示:

Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)

在更新了 Android Studio 3.5 版本以后可能会在编译时出现这个问题,由于 3.5 版本之后统一默认为 androidx,这种设置会和早期的 Android 开发工具包产生冲突,例如我遇到的就是上图所示的 v4 和 androidx 中有方法名重复的问题。

所谓的 android.support 是早期的 Android 开发工具包,大部分的控件都是依赖这个工具包,并且由于各种历史因素,已经出现了 android.support.v4android.support.v7android.support.v13 等多个版本,每次更新版本都会免不了要替换相关控件的包名。所以为了解决这个麻烦的版本更新问题,现在统一成了 androidx

解决方法:
找到 gradle.properties 文件,添加如下内容:

android.useAndroidX=true
android.enableJetifier=true

猜你喜欢

转载自blog.csdn.net/EverNess010/article/details/107610419
今日推荐