使用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;
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐