> 无法确定 null 的依赖关系。无法解析 com.android.tools.build:gradle:8.1.1

问题描述 投票:0回答:1

我正在尝试使用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 gradle java-8 java-11
1个回答
0
投票

安装最新的 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
- 应该说构建成功 -

  1. 就是这样,您只需使用
    cd ..
    返回根文件夹并使用
    npm start
    运行项目即可。
© www.soinside.com 2019 - 2024. All rights reserved.