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

React Native Image Picker集成失败:compileDebugJavaWithJavac报错

React Native Android 集成 react-native-image-picker 构建失败排查方案

问题重现

执行构建命令:

cd android
./gradlew clean
cd ..
npx react-native run-android

出现报错:

Task :react-native-image-picker:compileDebugJavaWithJavac FAILED

同时提示存在与Gradle 9.0不兼容的已弃用Gradle特性。

已执行操作:

  • 安装 react-native-image-picker
  • 在MainApplication.java中手动链接库
  • 更新至react-native-image-picker@latest

排查与修复步骤

1. 移除手动链接代码(RN 0.60+ 无需手动链接)

RN 0.60及以上版本支持自动链接,手动添加的链接代码会导致冲突,需删除MainApplication.java中以下内容:

import com.imagepicker.ImagePickerPackage;
// ...
packages.add(new ImagePickerPackage());

2. 适配Gradle与AGP版本

Gradle 9.0要求Android Gradle Plugin(AGP)版本≥8.4.0,需同步配置:

  • 修改android/build.gradle中的AGP版本:
    buildscript {
      dependencies {
        classpath 'com.android.tools.build:gradle:8.4.0' // 或更高兼容版本
      }
    }
    
  • 修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip // 与AGP对应版本
    

3. 补充Android权限配置

在android/app/src/main/AndroidManifest.xml中添加图片选择所需权限:

<!-- 相机权限(若需要拍照功能) -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Android 13+ 读取图片权限 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- Android 12及以下读取存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />

4. 彻底清理缓存并重建

执行以下命令清理所有缓存后重新构建:

rm -rf node_modules package-lock.json
npm install
cd android
./gradlew clean cleanBuildCache
cd ..
npx react-native run-android

5. 验证RN与image-picker版本兼容性

确保react-native版本与react-native-image-picker版本匹配,最新版react-native-image-picker要求RN≥0.60.0。若你的RN版本过低,可考虑:

  • 升级React Native至兼容版本
  • 降级react-native-image-picker到适配旧RN的版本(如^4.0.0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:03:14