【问题标题】:npx react-native run-android error after updating react nativenpx react-native run-android 更新后反应原生错误
【发布时间】:2020-02-13 12:51:12
【问题描述】:

我已经升级了我的 react native 并创建了一个新项目。

当我运行 npx react-native run-android iam 得到以下错误。

D:\React Native Playground\AwesomeProject\node_modules\react-native\cli.js{ "root": "D:\React Native Playground\AwesomeProject", "reactNativePath": "D:\React Native Playground\AwesomeProject \node_modules\react-native", "dependencies": {}, "commands": [ { "name": "log-ios", "description": "starts iOS device syslog tail" }, { "name": " run-ios", "description": "构建你的应用程序并在 iOS 模拟器上启动它", "examples": [ { "desc": "在不同​​的模拟器上运行,例如 iPhone 5", "cmd": "react- native run-ios --simulator \"iPhone 5\"" }, { "desc": "传递一个非标准的 iOS 目录位置", "cmd": "react-native run-ios --project-path \ "./app/ios\"" }, { "desc": "在连接的设备上运行,例如 Max's iPhone", "cmd": "react-native run-ios --device \"Max's iPhone\"" } , { "desc": "在 AppleTV 模拟器上运行", "cmd": "react-nativ e run-ios --simulator \"Apple TV\" --scheme \"helloworld-tvOS\"" } ], "options": [ { "name": "--simulator [string]", "description": “明确设置要使用的模拟器。可选地在末尾的括号中包含 iOS 版本以匹配确切的版本:\"iPhone 6 (10.0)\"", "default": "iPhone 11" }, { "name": "--configuration [string]", " description": "显式设置要使用的方案配置", "default": "Debug" }, { "name": "--scheme [string]", "description": "显式设置要使用的 Xcode 方案" }, { "name": "--project-path [string]", "description": "相对于 Xcode 项目 (.xcodeproj) 所在的项目根目录的路径。", "default": "ios" }, { "name ": "--device [string]", "description": "明确设置设备名称使用。如果您连接了单个设备,则不需要该值。" }, { "name": "--udid [string]", "description": "显式设置设备以供 udid 使用" }, { "name": "--no-packager", "description": "构建时不要启动打包器" }, { "name": "--verbose", "description": "即使安装了也不要使用 xcpretty" }, { " name": "--port [number]", "default": 8081 }, { "name": "--terminal [string]", "description": "使用指定终端在新窗口中启动 Metro Bundler path." } ] }, { "name": "log-android", "description": "starts logkitty" }, { "name": "run-android", "description": "构建你的应用并启动它在连接的 Android 模拟器或设备上", "options": [ { "name": "--root [string]", "description": "覆盖根目录对于 android 构建(包含 android 目录)", "default": "" }, { "name": "--variant [string]", "description": "Specify your app's build variant", "default" : "debug" }, { "name": "--appFolder [string]", "description": "为 android 源指定不同的应用程序文件夹名称。如果不是,我们假设是 \"app\"", "default": "app" }, { "name": "--appId [string]", "description": "Specify an applicationId to launch after build." , "default": "" }, { "name": "--appIdSuffix [string]", "description": "指定构建后启动的 applicationIdSuffix。", "default": "" }, { "name" : "--main-activity [string]", "description": "要启动的活动名称", "default": "MainActivity" }, { "name": "--deviceId [string]", "description ": "构建您的应用程序并在具有给定设备 ID 的特定设备/模拟器上启动它(通过在命令行上运行 \"adb devices\" 列出)。" }, { "name": "--no-packager ", "description": "构建时不要启动打包程序" }, { "name": "--port [number]", "default": 8081 }, { "name": "--ter minal [string]", "description": "使用指定的终端路径在新窗口中启动 Metro Bundler。" }, { "name": "--tasks [list]", "description": "运行自定义 Gradle任务。默认情况下它是 \"installDebug\"" }, { "name": "--no-jetifier", "description": "Do not run \"jetifier\" – AndroidX 转换工具。默认情况下,它在 Gradle 之前运行,以方便使用尚不支持 AndroidX 的库。查看更多信息:https://www.npmjs.com/package/jetifier.", "default": false } ] } ], "assets": [], "platforms": { "ios": {}, "android": {} }, "haste" : { "providesModuleNodeModules": [ "react-native" ], "platforms": [ "ios", "android" ] }, "project": { "ios": { "sourceDir": "D:\React Native Playground \AwesomeProject\ios", "文件夹": "D:\React Native Playground\AwesomeProject", "pbxprojPath": "D:\React Native Playground\AwesomeProject\ios\AwesomeProject.xcodeproj\project.pbxproj", "podfile": "D:\React Native Playground\AwesomeProject\ios\Podfile", "podspecPath": null, "projectPath": "D:\React Native Playground\AwesomeProject\ios\AwesomeProject.xcodeproj", "projectName": "AwesomeProject.xcodeproj ", "libraryFolder": "库", "sharedLibraries": [], "plist": [], "scriptPhases": [] }, "android": { "sourceDir": "D:\React Native Playground\AwesomeProject \android\app", "isFlat": false, “文件夹”:“D:\React Native Playground\AwesomeProject”,“stringsPath”:“D:\React Native Playground\AwesomeProject\android\app\src\main\res\values\strings.xml”,“manifestPath”: "D:\React Native Playground\AwesomeProject\android\app\src\main\AndroidManifest.xml", "buildGradlePath": "D:\React Native Playground\AwesomeProject\android\app\build.gradle", "settingsGradlePath": "D:\React Native Playground\AwesomeProject\android\settings.gradle", "assetsPath": "D:\React Native Playground\AwesomeProject\android\app\src\main\assets", "mainFilePath": "D:\ React Native Playground\AwesomeProject\android\app\src\main\java\com\awesomeproject\MainApplication.java", "packageName": "com.awesomeproject" } }} ^

FAILURE:构建失败并出现异常。

  • 在哪里: 脚本 'D:\React Native Playground\AwesomeProject\node_modules@react-native-community\cli-platform-android\native_modules.gradle' 行:200

  • 出了什么问题: 评估脚本时出现问题。

    解析 React Native CLI 配置失败。预期从 'D:\React Native Playground\AwesomeProject' 目录运行 'npx.cmd --quiet --no-install react-native config' 命令以输出有效的 JSON,但它没有。这可能是由于 npx 解析为遗留的全局 react-native 二进制文件造成的。请确保卸载所有全局“react-native”二进制文件:“npm uninstall -g react-native react-native-cli”并重试。

My package.json

{
  "name": "AwesomeProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "react": "16.9.0",
    "react-native": "0.61.5"
  },
  "devDependencies": {
    "@babel/core": "7.8.4",
    "@babel/runtime": "7.8.4",
    "@react-native-community/eslint-config": "0.0.5",
    "babel-jest": "24.9.0",
    "eslint": "6.8.0",
    "jest": "24.9.0",
    "metro-react-native-babel-preset": "0.56.4",
    "react-test-renderer": "16.9.0"
  },
  "jest": {
    "preset": "react-native"
  }
} 

【问题讨论】:

    标签: react-native react-native-android


    【解决方案1】:

    根据错误消息,听起来 npx 可能正在解析为旧版 react-native 二进制文件。如果您之前安装了 react-native-cli,这可能是罪魁祸首,因为 cli 现在与 react-native 二进制文件一起包含。每个 react-native 文档:

    如果您之前安装了全局 react-native-cli 包,请将其删除,因为它可能会导致意外问题。

    如果您还没有,请尝试使用 npm 卸载 react-native 和 react-native-cli,然后使用 npx(与 node 一起提供)以供将来使用 react-native。

    npm uninstall -g react-native react-native-cli
    

    那么,

    npx react-native init AwesomeProject
    

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2021-07-05
      相关资源
      最近更新 更多