You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Android构建失败:preDebugBuild任务执行错误

Fixing "androidx.slidingpanelayout compile vs runtime version mismatch" in React Native Android Build

这个问题是典型的传递依赖版本冲突——你的某个React Native第三方库引入了androidx.slidingpanelayout:slidingpanelayout的旧版本(1.0.0-rc01),而另一个依赖或项目本身依赖了正式版(1.0.0),导致编译时版本不统一。删除node_modules和build文件夹只能清理本地构建产物,无法解决依赖版本冲突的核心问题,下面是具体的解决步骤:

Step 1: 强制统一AndroidX依赖版本

打开项目根目录下的build.gradle(注意不是android/app/build.gradle),在allprojects代码块中添加版本强制策略,指定所有依赖必须使用1.0.0版本的slidingpanelayout:

allprojects {
    repositories {
        // 保留你原有的仓库配置,比如mavenLocal、jcenter等
        mavenLocal()
        maven { url 'https://maven.google.com' }
        jcenter()
        maven { url "https://jitpack.io" }
        maven { url "https://maven.facebook.com" }
    }

    // 添加这段代码强制统一依赖版本
    configurations.all {
        resolutionStrategy {
            force 'androidx.slidingpanelayout:slidingpanelayout:1.0.0'
            // 如果后续还有其他AndroidX库版本冲突,可以在这里继续添加force规则
            // 比如 force 'androidx.core:core:1.0.0'
        }
    }
}

Step 2: 确认AndroidX迁移配置(可选但推荐)

如果你的项目还没迁移到AndroidX,建议完成迁移以避免后续更多版本冲突:

  1. 在项目根目录的gradle.properties文件中添加以下配置:
    android.useAndroidX=true
    android.enableJetifier=true
    
  2. Jetifier会自动将第三方库中的旧Support库转换为AndroidX库,从根源减少版本冲突。

Step 3: 清理并重新构建

执行以下命令清理构建缓存并重新运行项目:

# 进入android目录
cd android
# 清理gradle构建缓存
./gradlew clean
# 返回项目根目录并运行Android项目
cd ..
npm run android

为什么这个方案有效?

resolutionStrategy.force会告诉Gradle忽略所有依赖库中指定的版本,强制使用你指定的统一版本,这样就解决了编译版本(1.0.0-rc01)和运行时版本(1.0.0)不一致的问题。

从你提供的app/build.gradle来看,项目中引入了多个第三方RN库(比如react-native-camera、lottie-react-native),这些库很可能是引入旧版本slidingpanelayout的源头,通过强制统一版本就能快速解决冲突。

内容的提问来源于stack exchange,提问作者Muho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:30:49