React Native 此版本中使用了弃用的Gradle功能,因此与android studio中的Gradle 8.0不兼容

iklwldmw  于 2023-01-31  发布在  React
关注(0)|答案(3)|浏览(317)

我在www.example.com文件中添加了firebase和google登录插件/依赖项后,尝试运行模拟器gradle.build,但现在收到错误消息“Deprecated Gradle features were used in this build,making it incompatible with Gradle 8.0”(已弃用的Gradle功能在此构建中使用,使其与Gradle 8.0不兼容)。
我不知道该尝试什么。这是我在学校为一个项目做的第一个应用程序,我真的不知道我在做什么。我只是在网上看教程

z9smfwbn

z9smfwbn1#

通过从<NameOfProject>/android中删除.gradle文件夹并再次运行npm run android,解决此问题

nukf8bse

nukf8bse2#

我想我刚刚遇到了同样的问题。我不知道你的错误日志是什么,所以我不确定这是我的错误日志:

`> Task :react-native-gradle-plugin:compileKotlin FAILED

“compileJava”任务(当前目标是1.8)和“compileKotlin”任务(当前目标是11)jvm目标版本1可操作任务:执行1次'
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':react-native-gradle-plugin:compileKotlin'. Failed to query the value of task ':react-native-gradle-plugin:compileKotlin' property 'compilerRun Kotlin could not find the required JDK tools in the Java installation. Make sure Kotlin compilat
不过,我通过编辑gradle-wrapper.properties文件的distributionUrl变量修复了此错误。我将distributionUrls gradle版本更改为7.4.2,该文件位于Project-Name\android\gradle\wrapper\gradle-wrapper.properties
我的错误日志显示,gradle的JVM版本应该是版本11,但实际上不是,但您可以在项目根目录中使用cd android检查gradle的JVM版本,然后运行./gradlew --version将JVM的版本从显示的版本更改为所需的版本,就像我的案例v 11一样。的JVM版本需要chocolatey,它是一个包管理器。您可以在此处使用它https://chocolatey.org/install,在设置chocolatey后,打开一个具有管理权限的新终端,并使用它在错误日志中要求的JVM版本运行此choco install -y nodejs-lts openjdk11
最后运行npm start,然后在更新的新终端中运行npm run android,gradle的JVM版本和gradle版本将更新为指定的版本

wdebmtf2

wdebmtf23#

如果您能向我们展示您的android/build.gradleandroid/app/build.gradle文件,我们会提供更好的帮助,但这里有比您在文档中找到的更具体的说明:
android/build.gradle中,依赖关系应该类似于:

dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath 'com.google.gms:google-services:4.3.10'
        
        classpath("com.android.tools.build:gradle:<version>")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("de.undercouch:gradle-download-task:<version>")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

参见:https://github.com/gyani-sunkara/rn-firebase-login-starter/blob/main/android/build.gradle
众所周知,这在一开始就适用于类路径。

同样在android/app/build.gradle中,已知google-services dep在文件末尾工作。

apply plugin: 'com.google.gms.google-services'

并使其成为依赖项下的最后一个"实现"(第272行附近)

implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' // <-- add this; newer versions should work too

参见:https://github.com/gyani-sunkara/rn-firebase-login-starter/blob/main/android/app/build.gradle
然后,删除android/.gradle并在根目录中运行npx react-native run-android

相关问题