此版本使用了不推荐使用的Gradle功能,使其与Gradle 5.0不兼容


81

我有一个失败的失败:

..."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

  • 在所有这些成功建立之后

  • 创建了测试成绩

    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
      class TestClass {
    
      @Test
      internal fun testName() {
        Assert.assertEquals(2, 1 + 1)
      }
    }
    
  • 运行测试并收到FAILURE消息。 在此处输入图片说明

  • 使用命令行参数运行Gradle构建./gradlew --warning-mode=all以查看确切不推荐使用的功能。 在此处输入图片说明

结果,我无法构建该应用程序,并且收到了FAILURE:消息。


1
那不是失败。该应用仍然可以编译,不是吗?
EpicPandaForce '18

1
该应用程序使用相同的失败消息进行编译。:-(
Philipp Buhaievskiy

2
那不是失败。如果应用无法编译,将是一个失败。最好不过是警告
EpicPandaForce '18

@ EpicPandaForce不幸的是,这是我提到的失败消息。问题不在于如何解释信息,而是我要感谢您的影响。
菲利普·布海耶夫斯基

Answers:


67

使用命令行参数运行Gradle构建--warning-mode=all以查看确切不赞成使用的功能。

它将通过Gradle文档的链接为您找到已发现的问题提供详细说明,以提供有关如何修复构建的说明。

除此之外--stacktrace,如果警告是由其中一个插件中的过时代码而不是您的构建脚本触发的,您还可以查明警告的来源。


我使用此建议更新了问题的描述。
菲利普·布海耶夫斯基

12
跑步时,react-native run-android --warning-mode all我得到error: unknown option --warning-mode'
Yokhen

12
尝试跑步gradle build --warning-mode=all
Jordan Daniels

13

试试这个

cd android && ./gradlew clean && ./gradlew :app:bundleRelease

谢谢,您能请解释一下这个./gradlew:app:bundleRelease为什么起作用,而这个./gradlew bundleRelease不能起作用。
Atikur Ra​​hman Sabuj

perfecct在我的cordova-9.0项目中为我工作:D
minigeek

10

我收到此错误。事实证明,只有当我完全清除RN缓存(相当复杂的过程)然后创建一个发布版本时,它才会发生。

如果我清理了缓存,创建了一个调试版本,然后创建了一个发行版本,那么一切都会正常。有点令人担忧,但有效。

注意:我的干净命令是...

rm -r android/build ; rm -r android/app/src/release/res ; rm -r android/app/build/intermediates ; watchman watch-del-all ; rm -rf $TMPDIR/react-* ; npm start -- --reset-cache


4

在我的情况我更新了build.gradle文件,使classpath到最新版本,从3.5.23.6.3

dependencies {
        classpath("com.android.tools.build:gradle:3.6.3") 
    }

3

更新您的第三方依赖性。例如,我将依赖项从更新 implementation 'com.github.ybq:Android-SpinKit:1.1.0'implementation 'com.github.ybq:Android-SpinKit:1.2.0'。就我而言,问题已解决。


请按照热键的建议进行详细说明
Hiren

这是错误,我正在升级gradle版本并尝试所有可能的步骤。:(
Anshul1507


2

重要提示-仅适用于REACT-NATIVE VS CODE终端的回答工作

在VisualStudio代码中,您必须像下面那样运行,然后该警告将被忽略。

react-native运行android warning-mode = all

如果您在下面运行,那么您将在终端中得到错误。当运行react-native run-android --warning-mode时,我都会收到错误:未知选项--warning-mode'


1

问题的解决方案:此构建中使用了不推荐使用的gradle功能,使其与gradle 6.0不兼容。android studio这个提供的解决方案对我有用。

首先,更改项目的build.gradle依赖项中的类路径。从:classpath 'com.android.tools.build:gradle:3.3.1' 到: classpath 'com.android.tools.build:gradle:3.6.1'

然后在gradle-wrapper.properties文件中进行更改,此文件存在于项目的gradle> wrapper文件夹中。从:distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 到: distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

然后同步您的gradle。



0

在使用IntelliJ和Gradle的SpringBoot项目中,运行集成测试时,出现警告“此构建中使用了不推荐的Gradle功能,使其与Gradle 5.0不兼容”。解决问题的方法是:-转到:“文件”>“设置”>“构建,执行,部署”-选择“构建并运行使用”:Intellij IDEA(而不是“ Gradle”)-与“运行测试使用”相同,没有解释为什么Gradle会显示警告,但这使我可以进行测试并继续工作。



0

以下解决方案对我有帮助,因为我也收到了同样的警告。在您的项目级别gradle文件中,尝试更改classpath中的gradle版本

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

0

如果您使用的是react-native,请在运行项目之前先尝试以下命令:

  1. npm install --save-dev jetifier
  2. npx jetify

现在再次运行您的项目。希望这会起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.