Reputation: 3867
I've got a gradle FAILURE:
..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."
Case description:
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"
Updated the gradle-wrapper.properties
distributionUrl=https....gradle-4.4-all.zip to 4.7-all
after all of that gradle was built success
created the test calss
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestClass {
@Test
internal fun testName() {
Assert.assertEquals(2, 1 + 1)
}
}
ran the Gradle build with a command line argument ./gradlew --warning-mode=all
to see what exactly the deprecated features are.
As a result I couldn't build the app and I've got that FAILURE: message.
Upvotes: 364
Views: 1197822
Reputation: 31
I got an error related to this that says: Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0
...The error occurred when I was setting up convention plugins in build-logic.
I solved this by adding this line to settings.gradle file: includeBuild("build-logic")
here:
pluginManagement {
includeBuild("build-logic")
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
}
}
mavenCentral()
gradlePluginPortal()
}
}
Note that sometimes when you import the build-logic folder from an existing project, it clears the settings.gradle file contents, so just replace the code and as it was before and add the 'includeBuild("build-logic") line.
Upvotes: 1
Reputation: 2005
Important - This answer only works for REACT-NATIVE
In your terminal, you'll have to run the following command to emit that warning:
react-native run-android -- --warning-mode=all
If you run the command, then you will get the error in your terminal.
Upvotes: 12
Reputation: 329
I am using react-native if all above doesn't work delete the Build and .gradle folders inside the Android folder and run again.
That solved my problem.
Upvotes: 5
Reputation: 21
After hours of searching on the web I used this command:
react-native run-android warning-mode=all
on vs code.
And it turns out that the error have nothing to do with deprecated modules or any gradle error, it was just that my device was full of storage.
I hope it will help someone one day.
Upvotes: 2
Reputation: 131
After none of the above answers worked for me, I managed to solve this issue by upgrading the Gradle plugin to the latest version and using the JDK 11. Hope this helps someone!
Upvotes: 2
Reputation: 1566
Go to gradle/wrapper/gradle-wrapper.properties
change the distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
to the release that is needed (or higher).
Then run again cd android && ./gradlew bundleRelease
Upvotes: 6
Reputation: 29
For me, the problem was that I ran out of space in my device's internal storage. After deleting a few unnecessary apps, it worked fine.
Upvotes: 0
Reputation: 49
1)cd android 2) ./gradlew clean 3)./gradlew :app:bundleRelease
then last install npm install command
Upvotes: 3
Reputation: 81
Solved this issue by deleting the .gradle folder from /android and again run npm run android, and it solved this error. Here's a link to the issue: https://github.com/facebook/react-native/issues/28954
Upvotes: 3
Reputation: 78
Try this solution worked for me.
If you have another app with the same name (or package name) on the device: Rename the app or delete it from your device.
Upvotes: 0
Reputation: 87
I Sloved this problem by updating my gradle-wrapper.properties file. You have to change this line distributionUrl=https://services.gradle.org/distributions/gradle-7.3.3-bin.zip to the lates gradle build which can be found at The Gradle Wrapper.
Hope that helps someone out there :)
Upvotes: 1
Reputation: 709
My project was incompatible with Gradle 8.0 .Here's what worked for me: First I wrote this line of code in the Android Studio terminal:
./gradlew build --warning-mode all
When you do that, you will be shown in the logcat what is found to be deprecated or an issue in your project, for me it was the jcenter()
repository that needed to be removed in my settings.gradle
file and also I needed to update classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
to classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30"
in my build.gradle
project file.
Once I did these things, my project built perfectly and installed on my emulator
Upvotes: 62
Reputation: 1
Add implementation("org.slf4j:slf4j-nop:1.7.25")
to build.gradle.kts
.
Upvotes: -3
Reputation: 2589
Check settings.gradle script and remove jcenter()
from that it may be causing the issue as it is deprecated.
You're new settings.gradle file should be
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'
Take note that ComposePlayground is app name.
Upvotes: 1
Reputation: 874
In my case adding multiDexEnabled true in Android/app/build.gradle file compiled the files.
I will look into removing this in the future, as in the documentation it says 'Before configuring your app to enable use of 64K or more method references, you should take steps to reduce the total number of references called by your app code, including methods defined by your app code or included libraries.'
defaultConfig {
applicationId "com.peoplesenergyapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true // <-add this
}
Upvotes: 9
Reputation: 1560
In my case deleting the whole android folder from the base directory and allowing it to rebuild all of it on eas build
fixed this error for me :)
Upvotes: 2
Reputation: 560
I found my disk space is less than 4 GB and can not get the Gradle lib repo then show
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.
just remove tmp and junk files, free up space then try build and resolve problem
Upvotes: 3
Reputation: 649
The process below worked in my case- First check Gradle Version:
cd android
./gradlew -v
In my case it was 6.5
Go to https://developer.android.com/studio/releases/gradle-plugin and you'll get the plugin version for your gradle version. For gradle version 6.5, the plugin version is 4.1.0
Then go to app/build.gradle
and change classpath 'com.android.tools.build:gradle:<plugin_version>
Upvotes: 47
Reputation: 550
it is due to incompatibility.
please upgrade classpath("com.android.tools.build:gradle:4.0.1")
in build.gradle file under android folder.
Upvotes: 1
Reputation: 168
i'am using react-native and this works for me :
cd android
and gradlew clean
long story short
> Task :app:installDebug FAILED
Fixed by kiling java.exe prossess
Upvotes: 3
Reputation: 51
It work for me in this issue in a project of react-native:
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
244 actionable tasks: 2 executed, 242 up-to-date D8: Cannot fit requested classes in a single dex file (# fields: 67296 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html ....
I Did this:
Uninstall the app from my device:
The number of method references in a .dex file cannot exceed 64k API 17
Upvotes: 5
Reputation: 101
The following solution helped me as I was also getting the same warning. In your project level gradle file, try to change the gradle version in classpath
classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"
Upvotes: 6
Reputation: 270
It was fixed this kind of error after migrate to AndroidX
Upvotes: -2
Reputation: 9630
in my case i updated the build.gradle
file and make the classpath
to latest version from 3.5.2
to 3.6.3
dependencies {
classpath("com.android.tools.build:gradle:3.6.3")
}
Upvotes: 10
Reputation: 53
On a SpringBoot project using IntelliJ and Gradle, I got the warning "Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0" when running my integration test. What solved the problem was: - Going to: File > Settings > Build, Execution, Deployment - Selecting for "Build and run using": Intellij IDEA (instead of "Gradle") - Same for "Run tests using" That did not explain why Gradle is displaying the warning, but that let me perform the test and progress in my work.
Upvotes: 3
Reputation: 2409
Try this one
cd android && ./gradlew clean && ./gradlew :app:bundleRelease
Upvotes: 110
Reputation: 31
Solution for the issue: deprecated gradle features were used in this build making it incompatible with gradle 6.0. android studio This provided solution worked for me.
First change the classpath in dependencies of build.gradle of your project
From: classpath 'com.android.tools.build:gradle:3.3.1'
To: classpath 'com.android.tools.build:gradle:3.6.1'
Then make changes in the gradle-wrapper.properties file this file exists in the Project's gradle>wrapper folder
From: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
To: distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
Then Sync your gradle.
Upvotes: 3
Reputation: 148179
Run the Gradle build with a command line argument --warning-mode=all
to see what exactly the deprecated features are.
It will give you a detailed description of found issues with links to the Gradle docs for instructions how to fix your build.
Adding --stacktrace
to that, you will also be able to pinpoint where the warning comes from, if it's triggered by outdated code in one of the plugins and not your build script.
Upvotes: 197
Reputation: 1828
I was getting this error. Turns out it only happened when I completely cleaned the RN caches (quite elaborate process) and then created a release build.
If I cleaned the caches, created a debug build and then a release build, everything worked. Bit worrying but works.
Note: My clean command is...
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
Upvotes: 26