在开发应用程序时,我遇到了以下错误。我尝试将 Java 版本从 11 降级到 8,但这没有帮助。
FAILURE: Build failed with an exception. * What went wrong: Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory(). > Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy(). * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 15s Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment: https://facebook.github.io/react-native/docs/getting-started.html Command failed: gradlew.bat installDebug Error: Command failed: gradlew.bat installDebug at checkExecSyncError (child_process.js:616:11) at Object.execFileSync (child_process.js:634:13) at runOnAllDevices (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:299:19) at buildAndRun (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:135:12) at isPackagerRunning.then.result (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:65:12) at process._tickCallback (internal/process/next_tick.js:68:7)
您在构建 React Native 项目时遇到的错误消息表明 Gradle 构建过程失败。这可能是由于多种原因造成的,包括 Gradle 或插件兼容性问题、Java 版本不正确或项目配置错误。
您可以采取以下步骤来排除故障并解决此问题:
确保安装了正确版本的 Java,并且JAVA_HOME正确设置了环境变量。React Native 通常支持适用于 Android 版本的 Java 8。
JAVA_HOME
通过运行以下命令来验证您的 Java 版本:
java -version
将环境变量设置JAVA_HOME为正确的路径。例如:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_251
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
node_modules
有时依赖项可能会损坏。删除node_modules文件夹并重新安装可能会有所帮助:
rm -rf node_modules npm install
或者,如果你使用 Yarn:
rm -rf node_modules yarn install
android/.gradle
android/build
Gradle 缓存有时会引发问题。删除这些文件夹可能会强制 Gradle 重新下载依赖项并重建缓存:
rm -rf android/.gradle rm -rf android/build
确保您的 Gradle 和 Android 构建工具是最新的。修改您的android/build.gradle文件以使用兼容的 Gradle 版本。例如:
android/build.gradle
// android/build.gradle buildscript { ext { buildToolsVersion = "30.0.2" minSdkVersion = 16 compileSdkVersion = 30 targetSdkVersion = 30 // Update the Gradle version as needed gradleVersion = "6.9" } repositories { google() mavenCentral() } dependencies { classpath("com.android.tools.build:gradle:4.2.1") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() mavenCentral() } }
有时,清除 Gradle 缓存可以解决构建问题:
gradlew clean
确保您已安装必要的 Android SDK 组件:
File > Project Structure > SDK Location
SDK Manager
使用该选项运行构建--stacktrace可以提供更详细的错误信息,这有助于调试:
--stacktrace
gradlew installDebug --stacktrace
确保您已运行 Android 模拟器或已连接物理设备。运行以下命令验证您的设备是否已被识别:
adb devices
如果以上步骤均不起作用,您可能需要重新安装 React Native CLI:
npm uninstall -g react-native-cli npm install -g react-native-cli
通过执行这些步骤,您应该能够识别并解决 React Native Android 版本的问题。如果问题仍然存在,请考虑创建一个新的 React Native 项目并迁移您的代码,以查看问题是否特定于项目。此外,查阅 React Native GitHub 问题页面和社区论坛可以提供进一步的见解。