使用jenkins,gradle构建Android应用程序时可能出现各种各样的奇怪问题,尤其是使用react-native开发的跨平台app时,因为ios上架appStore有些特殊要求,导致必须把依赖包升级成高版本,但是工程可能存在有的依赖是高版本,有的依赖是低版本的情况。现在将各种问题统一整理如下:
1、Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.1.0-runtime (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
出现以上问题的原因是使用了androidX,androidX本身带有support的依赖,但是工程里面又引用了其他第三方包,这些第三方包没有用androidX,用的是普通support,导致androidX的support和普通support冲突了。
解决办法:要么统一用androidX,要么统一用普通support包
2、This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry
出现以上问题的原因是工程本身或者依赖的第三方库使用了androidX,但是在工程的gradle.properties文件中没有增加android.useAndroidX=true配置。
解决办法:在工程的gradle.properties增加android.useAndroidX=true,android.enableJetifier=true配置。
android.enableJetifier=true会强制将所有依赖库的support依赖转成androidX的support,所以第三方依赖库如果有不支持androidX的,会报错
package android.support.annotation does not exist import android.support.annotation.Nullable;

本文详细介绍了在使用Jenkins和Gradle构建Android应用时遇到的关于AndroidX与Support库冲突的问题,并提供了两种解决方案:一是统一使用AndroidX,二是统一使用普通的Support库。此外还解释了如何设置gradle.properties文件来启用AndroidX。
985

被折叠的 条评论
为什么被折叠?



