我正在尝试使用react-native cli在react native上创建一个新项目,但我想知道为什么会抛出这个异常(我认为与正在使用的JDK或类似的东西有关)
例外是:
无法确定 null 的依赖关系。 无法解析配置“:classpath”的所有任务依赖性。 > 无法解析 com.android.tools.build:gradle:8.1.1.
这是我的build.gradle
buildscript {
ext {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
ndkVersion = "23.1.7779620"
}
repositories {
google()
mavenCentral()
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_X
targetCompatibility JavaVersion.VERSION_X
}
dependencies {
classpath("com.android.tools.build:gradle:8.1.1")
classpath("com.facebook.react:react-native-gradle-plugin")
}
}
在我的应用程序文件夹中
apply plugin: "com.android.application"
apply plugin: "com.facebook.react"
react {
}
def enableProguardInReleaseBuilds = false
def jscFlavor = 'org.webkit:android-jsc:+'
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
namespace "com.firstrnapp"
defaultConfig {
applicationId "com.firstrnapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}
buildscript {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
ndkVersion = "23.1.7779620"
kotlinVersion = "1.8.0"
androidXBrowser = "1.4.0"
}
repositories {
google()
jcenter()
}
dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
classpath('com.android.tools.build:gradle:8.1.1')
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
安装最新的 React Native 0.72 和最新的 Android Studio 后 Android Studio Giraffe | 2022.3.1 Patch 2,我遇到了非常相似的问题。
虽然我不能 100% 确定问题的确切根源是什么,但我通过执行以下操作修复了它:
#1:将正确的 JAVA_HOME 路径设置为您拥有的最新 JDK。您可以运行此命令在 Windows 10 终端/CMD 中打开环境变量编辑器:
rundll32.exe sysdm.cpl,EditEnvironmentVariables
。然后,添加/编辑 JAVA_HOME 变量,如下所示:
JAVA_HOME
另外,我曾经在路径中有多个java版本,我从路径中删除了所有主题!
#2 在项目运行的根文件夹中
npx react-native doctor
,它显示一些有用的信息,如下所示:
npx 反应原生医生
*** 注意我在这里点击了 e,我不知道它是否帮助我解决了问题 ***
#3 据此,我必须确保安装 Android SDK 命令行工具版本 33.0.0。 -注意这个数字可能会根据您使用的React版本而有所不同-打开Android Studio工具->SDK管理器->SDK工具选项卡。
启用显示包裹详细信息复选框。 显示详情
下载正确版本的 SDK 命令行工具,在我的例子中是 33.0.0。 [此处为图片]
#4 关闭所有打开的终端/CMD 窗口。
#5 在项目的根文件夹中打开终端并运行以下命令:
*5.1
cd android
*5.2
gradlew --stop
-确保停止时不会提示错误-
*5.3
gradlew
- 应该说构建成功 -
*5.4
gradlew clean
- 应该说构建成功 -
cd ..
返回根文件夹并使用 npm start
运行项目即可。