我遇到了故障:
..."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-全部 .zip到 4.7-all
在所有这些构建成功之后
创建了测试成绩
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestClass {
@Test
internal fun testName() {
Assert.assertEquals(2, 1 + 1)
}
}
使用命令行参数./gradlew --warning-mode=all
运行Gradle构建,以查看确切不赞成使用的功能。
结果是我无法构建该应用程序,并且收到了FAILURE:消息。
答案 0 :(得分:15)
尝试这个
cd android && ./gradlew clean && ./gradlew :app:bundleRelease
答案 1 :(得分:14)
使用命令行参数--warning-mode=all
运行Gradle构建,以查看确切不赞成使用的功能。
它将通过Gradle文档的链接为您找到已发现的问题的详细说明,以指示如何修复构建。
答案 2 :(得分:8)
在我的情况下,在 Android/build/build.gradle 文件中添加 multiDexEnabled true 编译文件。
我将来会考虑删除它,因为在 documentation 中它说“在配置您的应用以启用 64K 或更多方法引用之前,您应该采取措施减少调用的引用总数由您的应用代码,包括由您的应用代码或包含的库定义的方法。'
defaultConfig {
applicationId "com.peoplesenergyapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true // <-add this
}
答案 3 :(得分:7)
在我的情况下,我更新了build.gradle
文件,并将classpath
的最新版本从3.5.2
更改为3.6.3
dependencies {
classpath("com.android.tools.build:gradle:3.6.3")
}
答案 4 :(得分:4)
我收到此错误。事实证明,只有当我完全清理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
答案 5 :(得分:2)
我正在使用 react-native,这对我有用:
cd android
和 gradlew clean
的根目录长话短说
> Task :app:installDebug FAILED
由 kiling java.exe prossess
答案 6 :(得分:1)
在gradle-wrapper-properties文件中将distributionUrl路径设置为:
distributionUrl = https://services.gradle.org/distributions/gradle-4.10.2-all.zip
答案 7 :(得分:1)
以下过程适用于我的情况- 首先检查 Gradle 版本:
cd android
./gradlew -v
就我而言是 6.5
转到 https://developer.android.com/studio/releases/gradle-plugin,您将获得 gradle 版本的插件版本。 gradle 6.5版本,插件版本为4.1.0
然后转到app/build.gradle
并更改classpath 'com.android.tools.build:gradle:<plugin_version>
答案 8 :(得分: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。
答案 9 :(得分:1)
从设备/模拟器卸载旧应用。它对我有用
答案 10 :(得分:0)
迁移到AndroidX
后已修复了此类错误答案 11 :(得分:0)
就我而言,从基本目录中删除整个 android 文件夹并允许它在 eas build
上重建所有文件夹为我修复了此错误:)
答案 12 :(得分:0)
我发现我的磁盘空间小于 4 GB 并且无法获取 Gradle lib 存储库 然后显示
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
只需删除 tmp 和垃圾文件,释放空间然后尝试构建并解决问题
答案 13 :(得分:0)
这是因为不兼容。
请升级android文件夹下build.gradle文件中的classpath("com.android.tools.build:gradle:4.0.1")
。
答案 14 :(得分:0)
此问题在本机的本机项目中对我有用:
在此版本中使用了不推荐使用的Gradle功能,使其与Gradle 7.0不兼容。
244个可执行任务:已执行2个,最新242个 D8:无法在单个dex文件中容纳请求的类(#字段:67296> 65536) com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错: .dex文件中方法引用的数量不能超过64K。 在https://developer.android.com/tools/building/multidex.html了解如何解决此问题 ....
我这样做了:
答案 15 :(得分:0)
如果您使用的是 react-native ,请在运行项目之前先尝试以下命令:
现在再次运行您的项目。希望这会起作用。
答案 16 :(得分:0)
以下解决方案对我有帮助,因为我也收到了同样的警告。 在您的项目级别gradle文件中,尝试更改classpath中的gradle版本
classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"
答案 17 :(得分:0)
在使用IntelliJ和Gradle的SpringBoot项目中,运行集成测试时,出现警告“此构建中使用了不推荐的Gradle功能,使其与Gradle 5.0不兼容”。 解决问题的是: -转到:文件>设置>构建,执行,部署 -选择“使用以下语言进行构建和运行”:Intellij IDEA(而不是“ Gradle”) -与“使用...运行测试”相同 那并不能解释为什么Gradle显示警告,而是让我进行测试并进行工作。
答案 18 :(得分:0)
重要-仅适用于REACT-NATIVE VS CODE终端的答案工作
在VisualStudio代码中,您必须像下面那样运行,然后该警告将被忽略。
react-native run-android warning-mode = all
如果在下面运行,则将在终端中显示错误 当运行react-native run-android --warning-mode时,我得到错误:未知选项--warning-mode'
答案 19 :(得分:0)
更新您的第三方依赖性。例如,
implementation 'com.github.ybq:Android-SpinKit:1.1.0'
至implementation 'com.github.ybq:Android-SpinKit:1.2.0'
。就我而言,问题已解决。
答案 20 :(得分:0)
最后决定将junit 5降级为junit 4,并重建测试环境。