react-native link卡在“Assets已成功链接到项目”的问题排查
React Native Link Stuck at "Assets have been successfully linked to your project" After Linking Modules
我在处理RN 0.5x版本的项目时碰到过不少类似的link卡住问题,结合你给出的环境信息和涉及的模块,咱们来拆解下可能的原因和优先排查的方向:
可能的触发原因
- RN 0.55.x 内置link工具的固有缺陷:这个版本的
react-native link在处理第三方模块的资产(比如自定义字体、原生资源文件)或者复杂依赖链时,经常会出现进程挂起的情况——尤其是当模块自身的link脚本异步处理逻辑不严谨时,很容易卡在成功提示那一步不动。 - react-native-firebase 与 google-services 版本不兼容:你使用的
com.google.gms:google-services:3.2.1和RN 0.55.4适配的react-native-firebase版本可能存在兼容性冲突,google-services插件在解析Firebase配置文件时如果出现阻塞,会直接拖慢甚至卡住整个link流程。 - react-native-image-crop-picker 的资源链接冲突:这个模块涉及原生端的图片资源、权限配置修改,当它的link脚本在处理iOS的
Info.plist或者Android的AndroidManifest.xml时,如果遇到重复配置、文件读写权限不足的情况,就可能导致进程停住。 - Gradle版本与RN 0.55.4 适配性问题:
com.android.tools.build:gradle:3.1.2对于RN 0.55.4来说版本偏高,这个版本的Gradle在依赖同步阶段可能存在性能或兼容性问题,间接导致link流程卡住。
优先排查与解决方向
- 先终止进程,手动验证链接状态:先用
Ctrl+C杀掉卡住的终端进程,然后分别检查iOS和Android端的链接情况:- iOS:打开Xcode项目,确认
Libraries目录下是否有RNFirebase.xcodeproj、RNImageCropPicker.xcodeproj,且Build Phases的Link Binary With Libraries中已添加对应静态库;同时检查资产文件(如字体)是否已加入Copy Bundle Resources。 - Android:查看
settings.gradle是否添加了两个模块的依赖路径,app/build.gradle的dependencies中是否包含对应compile语句,以及google-services.json是否正确放在app目录下。
- iOS:打开Xcode项目,确认
- 降级google-services插件版本:尝试把
com.google.gms:google-services降到3.1.1——这个版本和RN 0.55.4的兼容性经过很多开发者验证更稳定,不少人反馈升级到3.2.x后会出现各种阻塞问题。修改项目根目录的build.gradle后,重新运行react-native link试试。 - 单独链接单个模块定位问题:不要一次性链接所有模块,先运行
react-native link react-native-firebase,完成后再执行react-native link react-native-image-crop-picker,看看是哪个模块导致的卡住。如果某一个模块链接时卡住,就针对该模块进行手动链接。 - 检查Gradle同步状态:打开Android Studio导入项目的Android部分,等待Gradle同步完成,看看是否有依赖冲突或报错信息。如果有冲突,先解决掉再重新执行link命令。
- 清理缓存后重试:运行以下命令清理RN缓存和Gradle缓存,再重新执行link:
react-native start --reset-cache cd android && ./gradlew clean cd .. && react-native link
内容的提问来源于stack exchange,提问作者rendom
相关产品推荐
相关产品推荐

