ChatGPT解决这个技术问题 Extra ChatGPT

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

I've got a gradle FAILURE:

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

Case description:

Attached to the project codebase the next libs:

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 test and got the FAILURE message.

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.

That's not a failure. The app still compiles, no?
The app is compiles with the same failure message. :-(
That's not a failure. It would be a failure if the app did not compile. That's at best a warning.
@ EpicPandaForce unfortunately that IS a failure message as I mentioned. The question is not about how to interpret the message, but anyway my appreciation for your impact.
Try this solution. Just add some code. stackoverflow.com/questions/54276381/…

h
hotkey

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.


When running react-native run-android --warning-mode all I get error: unknown option --warning-mode'
Try running gradle build --warning-mode=all
@Led, the deprecation warnings could arise due to numerous reasons, from deprecated feature used in the build script to third-party Gradle plugins being outdated or mistakenly calling the deprecated API. This answer offers a way to find what exactly is causing deprecation warnings, so, having learned that, you can search for solutions to a more specific problem.
@JordanDaniels Where am I supposed to add that command, in Android Studio Terminal? When I write there, I get: 'gradle' is not recognized as an internal or external command, operable program or batch file.
Use npx react-native run-android -- --warning-mode=all for React-Native
M
Masum Billah

Try this one

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

Thanks, Can you plesae explain why this ./gradlew :app:bundleRelease works and this ./gradlew bundleRelease doesn't.
perfecct worked for me on my cordova-9.0 project :D
@AtikurRahmanSabuj It depends on how ./gradlew file was written. As the default module in android is "app" and android app can have multiple modules. Also ./gradlew only should work after cleaning. To see all the tasks in the gradlew, execute "./gradlew tasks" which will tell you the available tasks in the gradlew.
For Apache Cordova and Android 9, error may be resolved by enabling AndroidX. To enable, see: cordova.apache.org/announcements/2020/06/29/…
It give me app-release.aab file and can't open in my mobile phone
S
Shafin Hasnat

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>


You just save me from 3 days headache figuring how to fix this. Thanks a million.
for my case Gradle 7.2 which plugin 7.0 but it is not working.
c
chichilatte

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


This is the CORRECT answer after HOURS of searching and trying
Worked for me as well, after I updated some other dependencies.
K
Kevin Germain

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


I edited settings.gradle and removed jcenter and the warning went away.
I am newbie and I didn't know at all how to run the suggestion of using warning-mode all. When I read your answer at first I was stuck but I re-read and saw at the beginning you said in the Android Studio terminal. I tried and I got the same deprecation of jcenter(). I removed and the warning disappeared. IMPORTANT: After doing so, you have to re-sync the app project with Gradle file otherwise the app doesn't install on the emulator or physical device.
A
Avid Programmer

Important - Answer work only for REACT-NATIVE VS CODE Terminal

In VisualStudio code, you have to run like below then that warning will be omitted.

react-native run-android warning-mode=all

If you run below then you will get the error in terminal When running react-native run-android --warning-mode all I get error: unknown option --warning-mode'


M
Moumit

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") 
    }

q
questerstudios

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 
}

"If your app only targets Android 21 or higher (minSdkVersion) then multidex is already enabled by default and you do not need the multidex support library. However, if your minSdkVersion is set to 20 or lower, then you must use the multidex support library". Source from Flutter
k
kk.

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"

It's worked for me after trying all other process here. It saves my day. thx
Been struggling with this error 2 hours. This answer saved me a lot of wasted time.
Where is that file and entry located?
H
Hiren

Update your third party dependencies. for example I updated dependency from implementation 'com.github.ybq:Android-SpinKit:1.1.0' to implementation 'com.github.ybq:Android-SpinKit:1.2.0'. and in my case issue has been solved.


follow the hotkey's suggestion for exact detailed description
this was the mistake and i am upgrading gradle version and try every possible step. :(
N
NerioLorona

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


thanks for sharing. nearly spent 50 minutes on it. just uninstalling application from device did the job for me.
G
Gautam Dev

Set distributionUrl path in gradle-wrapper-properties files as :

distributionUrl=https://services.gradle.org/distributions/gradle-4.10.2-all.zip


my gradle had this line.. .distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip Changed it to and it worked. distributionUrl=services.gradle.org/distributions/gradle-4.10.2-all.zip
P
Philipp Buhaievskiy

Finally decided to downgrade the junit 5 to junit 4 and rebuild the testing environment.


How you did it?
Pratik keep in mind, for now, six month later, I suppose the circumstances around of this issue are changed. I'd advise you to investigate from scratch, if JUnit 5 is convenient to use as a test instrument.
N
Nawab Singh Koli

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.


c
cetric

Uninstall the old app from the device/emulator. It worked for me


f
faryar76

i'am using react-native and this works for me :

in root of project cd android and gradlew clean open task manager in windows on tab 'Details' hit endtask on both java.exe proccess

long story short > Task :app:installDebug FAILED Fixed by kiling java.exe prossess


s
sabrim

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


N
Ndatimana Gilbert

I am using react-native if all above didn't work delete Build and .gridle folder inside the Android folder and run again, That solved my problem


In my case, I just removed custom files gradle.properties and init.gradle from folder .gradle
O
Omar D

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.


d
dinobi

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


S
Shep Sims

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 :)


Thaks for saving me hours
A
Ahsan Raza Alvi

1)cd android 2) ./gradlew clean 3)./gradlew :app:bundleRelease

then last install npm install command


M
Manan Gadhiya

it is due to incompatibility.

please upgrade classpath("com.android.tools.build:gradle:4.0.1") in build.gradle file under android folder.


V
Vidyesh Churi

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.


l
lungu

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 :)


Where is this file gradle-wrapper.properties located
M
Moustaoui Salaheddine

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.


z
zacker awali

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 moduls or any gradle error it was just that my device was full of storage , hope it helps some one in some day.


F
Fotios Tsakiris

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


4
4b0

Add implementation("org.slf4j:slf4j-nop:1.7.25") to build.gradle.kts.


As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review
M
MoxJet

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.


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now