React Native安卓构建失败:rnmapbox_maps模块compileDebugKotlin任务执行错误
我太懂这种挫败感了——iOS端顺顺利利跑起来,安卓却卡在rnmapbox_maps的Kotlin编译上,而且AI推荐的更新版本、清理重建都试过了还是没用,真的闹心。结合你给出的版本信息(RN 0.76.9、@rnmapbox/maps 10.1.39,安卓配置Kotlin 1.9.25、compileSdk 35),我给你几个更针对性的排查方向:
1. 先抓准具体的编译错误根源
你现在看到的只是任务执行失败的笼统提示,真正的问题藏在Run gradlew阶段的详细日志里。我建议你重新运行构建时,特意去看rnmapbox_maps模块的编译日志,找类似“Unresolved reference”“Incompatible types”这类具体错误——比如可能是Kotlin语法不兼容、某个API在新compileSdk里被移除,或者是依赖冲突导致的类重复定义。找到具体错误,问题就解决了一半。
2. 核对版本兼容性的细节
虽然你觉得版本配得没问题,但还是要再确认两点:
- @rnmapbox/maps 10.1.39是否明确支持compileSdk 35?毕竟35是比较新的版本,部分第三方库可能还没完全适配。你可以试试把compileSdkVersion降到34(和你的targetSdkVersion一致),再重新构建试试。
- 确保项目里所有模块的Kotlin版本统一:你在app.config里设了kotlinVersion 1.9.25,但要检查安卓根目录的
build.gradle文件,在buildscript块里有没有同步设置这个版本,比如:
有些时候第三方库会自带不同版本的Kotlin插件,统一版本能避免很多冲突。buildscript { ext { kotlinVersion = '1.9.25' // 其他配置... } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // 其他依赖... } }
3. 排查依赖冲突
可能是其他模块拉了和rnmapbox_maps不兼容的Kotlin依赖版本。你可以在安卓目录下运行这个命令,查看rnmapbox_maps模块的Kotlin依赖详情:
./gradlew :rnmapbox_maps:dependencyInsight --dependency org.jetbrains.kotlin:kotlin-stdlib
如果输出里有多个Kotlin版本,说明存在冲突。这时候可以在安卓根目录的build.gradle里添加强制统一Kotlin版本的配置:
subprojects { afterEvaluate { project -> if (project.plugins.hasPlugin('kotlin-android')) { project.android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } project.dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${rootProject.ext.kotlinVersion}" } } } }
4. 彻底清理所有缓存(比常规操作更彻底)
你说已经清理重建了,但可能有些缓存没清干净:
- 先运行
npx react-native clean清理RN缓存 - 再运行
./gradlew clean清理安卓构建缓存 - 手动删除项目根目录的
.gradle文件夹、安卓目录下的build文件夹,以及android/app/build文件夹 - 最后重新执行
npx react-native run-android
5. 检查Java版本是否符合要求
React Native 0.76.x要求使用Java 17,如果你的开发环境用的是Java 11或更低版本,也会导致Kotlin编译失败。你可以在终端运行java -version确认版本,要是不对就切换到Java 17再试。
内容来源于stack exchange

