执行npx react-native run-android时Metro bundler启动后终止
React Native Metro打包器中途崩溃,调试流程异常缓慢
我用React Native开发应用已有2年,此前运行和更新均无问题。近期执行npx react-native run-android时,Metro打包器启动后会中途关闭,虽然应用能正常安装并启动,但每次验证小改动都得先执行npx react-native bundle再重新运行npx react-native run-android,每次要等待3-4分钟,效率极低。
*打包命令:react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
开发环境
- 操作系统:Windows 10
- 代码编辑器:Visual Studio Code
- React Native版本:0.67.2
已尝试的解决方法
- 执行
cd android && ./gradlew clean && cd ../命令 - 删除node_modules文件夹后执行
npm install
npx react-native run-android命令输出
> AppName@0.0.1 android > react-native run-android 警告:包@react-native-masked-view/masked-view因配置无效被忽略,原因:找不到模块'@react-native-masked-view\masked-view\package.json' 依赖栈: - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli-tools\build\resolveNodeModuleDir.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli-tools\build\releaseChecker\index.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli-tools\build\index.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\tools\config\resolveNodeModuleDir.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\tools\config\resolveReactNativePath.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\tools\config\index.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\commands\install\install.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\commands\index.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\index.js - C:\DATA\Projects\ProjectName\Code\AppName\node_modules\@react-native-community\cli\build\bin.js 信息:正在运行jetifier迁移库到AndroidX,可通过"--no-jetifier"参数禁用 Jetifier找到1282个文件需要向前兼容转换,使用8个工作线程... 信息:启动JS服务器... 信息:安装应用... > 任务 :app:processDebugMainManifest 为确保正确性,任务':app:processDebugMainManifest'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\navigation_json\debug\navigation.json'。原因:任务':app:processDebugMainManifest'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:processDebugManifest 为确保正确性,任务':app:processDebugManifest'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\compatible_screen_manifest\debug'。原因:任务':app:processDebugManifest'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\merged_manifest\debug\AndroidManifest.xml'。原因:任务':app:processDebugManifest'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:compressDebugAssets 为确保正确性,任务':app:compressDebugAssets'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\assets\debug\mergeDebugAssets'。原因:任务':app:compressDebugAssets'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:processDebugManifestForPackage 为确保正确性,任务':app:processDebugManifestForPackage'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\merged_manifests\debug'。原因:任务':app:processDebugManifestForPackage'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:mergeDebugJavaResource 为确保正确性,任务':app:mergeDebugJavaResource'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\java_res\debug\out'。原因:任务':app:mergeDebugJavaResource'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:mergeLibDexDebug 为确保正确性,任务':app:mergeLibDexDebug'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\duplicate_classes_check\debug'。原因:任务':app:mergeLibDexDebug'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:mergeExtDexDebug 为确保正确性,任务':app:mergeExtDexDebug'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\duplicate_classes_check\debug'。原因:任务':app:mergeExtDexDebug'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\external_file_lib_dex_archives\debug'。原因:任务':app:mergeExtDexDebug'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:mergeDebugNativeLibs 为确保正确性,任务':app:mergeDebugNativeLibs'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\merged_jni_libs\debug\out'。原因:任务':app:mergeDebugNativeLibs'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:stripDebugDebugSymbols 为确保正确性,任务':app:stripDebugDebugSymbols'的执行优化已禁用,原因如下: - Gradle检测到以下路径存在问题:'C:\DATA\Projects\ProjectName\Code\AppName\android\app\build\intermediates\merged_native_libs\debug\out'。原因:任务':app:stripDebugDebugSymbols'使用了任务':app:copyDebugIconFonts'的输出,但未声明显式或隐式依赖,可能导致任务执行顺序不同时产生错误结果。 > 任务 :app:installDebug 正在设备'SM-A530F - 9'上安装APK 'com.appname-2.5-29-debug.apk'(对应任务:app:debug) 已在1台设备上完成安装。 本次构建使用了已废弃的Gradle特性,无法兼容Gradle 8.0。 可使用'--warning-mode all'参数查看具体废弃警告,判断警告来自自定义脚本还是插件。 构建成功,耗时1分1秒 293个可执行任务:11个已执行,282个已最新 信息:连接开发服务器... 信息:在"5200ba9a5e7cc481"上启动应用... 启动:Intent { cmp=com.appname/.MainActivity }
补充信息
已捕获Metro窗口的错误日志,错误在npx react-native run-android输出> Task :app:stripDebugDebugSymbols时触发,日志如下:
重新加载应用请按"r" 打开开发者菜单请按"d" C:\...\MyProyectName\node_modules\metro-hermes-compiler\src\emhermesc.js:77 throw ex; ^ 错误:EPERM:操作不被允许,lstat 'C:\...\MyProyectName\android\app\build\intermediates\stripped_native_libs\debug\out\lib\armeabi-v7a\libevent_extra-2.1.so.tmp1e1f3c7' 在NodeWatcher实例上触发了'error'事件: at NodeWatcher.<anonymous> (C:\...\MyProyectName\node_modules\sane\src\node_watcher.js:291:16) at FSReqCallback.oncomplete (node:fs:207:21) { errno: -4048, code: 'EPERM', syscall: 'lstat', path: 'C:\\...\\MyProyectName\\android\\app\\build\\intermediates\\stripped_native_libs\\debug\\out\\lib\\armeabi-v7a\\libevent_extra-2.1.so.tmp1e1f3c7' Node.js v18.13.0
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

