我有一个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:消息。


当前回答

试试这个

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

其他回答

在我的例子中,我更新了构建。并将类路径设置为3.5.2到3.6.3的最新版本

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

在我的情况下,从基本目录删除整个android文件夹,并允许它在eas build上重建所有它修复了这个错误:)

我得到了这个错误。事实证明,只有当我完全清理RN缓存(相当复杂的过程),然后创建发布构建时,才会发生这种情况。

如果我清理了缓存,创建了调试版本,然后是发布版本,那么一切都可以正常工作。有点令人担忧,但有效。

注意:我的clean命令是…

Rm -r android/build;Rm -r android/app/src/release/res;Rm -r android/app/build/intermediates;守望人守望一切;rm -rf $TMPDIR/react-*;NPM启动-- --reset-cache

解决方法: 在这个版本中使用了已弃用的gradle特性,使得它与gradle 6.0不兼容。android工作室 这个解决方案对我很有效。

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

然后在gradle-wrapper中进行更改。该文件存在于项目的gradle>包装器文件夹中 来自: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。

在我的情况下,在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 
}