【发布时间】: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