我有一个gradle FAILURE:

..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."

案例描述:

附加到项目代码库的下一个库:

APP / build.gradle

    //(Required) Writing and executing Unit Tests on the JUnit Platform 
testImplementation "org.junit.jupiter:junit-jupiter-api:5.2.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.2.0"
    // (Optional) If you need "Parameterized Tests"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.2.0"
    // (Optional) If you also have JUnit 4-based tests
testImplementation "junit:junit:4.12"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:5.2.0"

testImplementation "io.mockk:mockk:1.8.5"

更新gradle-wrapper.properties distributionUrl=https....gradle-4.4-all.zip到4.7-all .zip 毕竟,gradle是建立成功的 创建测试类 @TestInstance (TestInstance.Lifecycle.PER_CLASS) 类TestClass { @Test 内部乐趣testName() { 断言。assertEquals(2,1 + 1) } } 运行测试并得到FAILURE消息。 运行Gradle构建时使用命令行参数./gradlew——warning-mode=all来查看哪些特性被弃用了。

结果,我无法构建应用程序,我得到了FAILURE:消息。


当前回答

检查设置。Gradle脚本并删除jcenter(),它可能会导致问题,因为它已弃用。

你是新设置。Gradle文件应该是

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
    plugins {
        id 'com.android.application' version '7.1.0-alpha12'
        id 'com.android.library' version '7.1.0-alpha12'
        id 'org.jetbrains.kotlin.android' version '1.5.21'
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "ComposePlayground"
include ':app'

注意ComposePlayground是应用程序名称。

其他回答

在我的情况下,在Android/app/build中添加multiDexEnabled true。Gradle文件编译文件。

我将考虑在未来删除这个,因为在文档中它说“在配置你的应用程序以启用64K或更多的方法引用之前,你应该采取措施减少你的应用程序代码调用的引用总数,包括你的应用程序代码定义的方法或包含的库。”

defaultConfig {
  applicationId "com.peoplesenergyapp"
  minSdkVersion rootProject.ext.minSdkVersion
  targetSdkVersion rootProject.ext.targetSdkVersion
  versionCode 1
  versionName "1.0"
  multiDexEnabled true // <-add this 
}

使用命令行参数——warning-mode=all运行Gradle构建,查看哪些特性被弃用。

它会给你一个详细的描述发现的问题与链接到Gradle文档指导如何修复你的构建。

在此基础上添加——stacktrace,如果警告是由某个插件中的过时代码而不是你的构建脚本触发的,你也可以精确地指出警告的来源。

下面的解决方案帮助了我,因为我也得到了相同的警告。 在你的项目级gradle文件中,尝试在类路径中更改gradle版本

classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"

通过从/android中删除.gradle文件夹并再次运行npm run android解决了这个问题,它解决了这个错误。 这是问题的链接:https://github.com/facebook/react-native/issues/28954

更新第三方依赖项。例如,我更新了依赖 实现“com.github.ybq:Android-SpinKit:1.1.0”到实现“com.github.ybq:Android-SpinKit:1.2.0”。对我来说,问题已经解决了。