177

ERROR: No signature of method: build_ap86oam3dut3pxce3x49rdtma.android() is applicable for argument types: (build_ap86oam3dut3pxce3x49rdtma$_run_closure1) values: [build_ap86oam3dut3pxce3x49rdtma$_run_closure1@47588b04]

The build gradle is:

apply plugin: 'com.android.application'

    android{
    implementationSdkVersion 28
    buildToolsVersion "29.0.3"
    defaultConfig {
        applicationId "com.uiresource.taksiku"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        androidTestImplementation('com.android.support.test.espresso:espresso-core:2.3-alpha', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        implementation "com.android.support:appcompat-v7:$var"
        implementation 'com.android.support:design:28.0.0'
        testimplementation 'junit:junit:4.13'
        implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta5'
        implementation 'de.hdodenhof:circleimageview:3.1.0'
        }
Usman Liaqat
  • 1,771
  • 2
  • 7
  • 6
  • check my answer on https://stackoverflow.com/questions/66292426/how-do-you-fix-the-following-error-a-problem-occurred-evaluating-project-app/74282362#74282362 – Xakiru Nov 01 '22 at 22:17

53 Answers53

139

If you are using kotlin version 1.4.21 or newer, kotlin-android-extension is deprecated. So if you removing the plugin you also have to remove the android experimental extension block. In my case, I had to remove these pieces of code.

apply plugin: 'kotlin-android-extensions'


androidExtensions {
    experimental = true
}

But if above did not fix it

This a kind of general and/or wrapping error which hides the real cause and/or problem, hence to see actual error message, try something like:

./gradlew :app:assembleDebug --stacktrace

And search for resulting real error-message instead.

Top-Master
  • 7,611
  • 5
  • 39
  • 71
Chintan Parmar
  • 2,375
  • 2
  • 12
  • 22
  • 5
    Thanks for this! Seems like that snippet should be added to the migration [guide](https://developer.android.com/topic/libraries/view-binding/migration) AS points you to for the deprecation notice. – A_Kiniyalocts Jan 14 '21 at 19:52
  • 3
    Thanks. Imagine, this is what AS gave me: `> No signature of method: build_1vktrv59g77woj77yc4fmjh74.android() is applicable for argument types: (build_1vktrv59g77woj77yc4fmjh74$_run_closure1) values: [build_1vktrv59g77woj77yc4fmjh74$_run_closure1@3918b394]` – nyxee Mar 24 '21 at 07:11
  • the `./gradlew :app:assembleDebug --stacktrace` indeed helps to identify what the problem is . – 钟智强 Jun 13 '23 at 09:41
44

I had the same error message until I commented out everything in the android plugin except the compile sdk version, trying to get back to a successful build config.

android {
    compileSdkVersion 23
/*
    ...
*/
}

Then, I started uncommenting things until I narrowed the problem down to using the following incorrectly.

ProductFlavors {
  ...
}

I'm not sure if you're using the same block, but at the moment, I'm leaving it commented out because I'm not sure it's needed. Once I got rid of it though, I was receiving other errors about sdk root dir location, so I was able to fix those.

I hope this helps!

Daniel
  • 449
  • 3
  • 2
41

I was getting a similar error because the versionCode was being taken from a properties file, but the versionCode needs to be an integer and not a string, so toInteger() was needed.

Nice logs, android.

htafoya
  • 18,261
  • 11
  • 80
  • 104
  • 3
    this also happened to me, checking version code solved the issue – Mehran Sahandi Far Apr 26 '21 at 07:07
  • this was a lot helpful!! my case was about versionCode number, which i set by using System.getenv("NEW_BUILD_NUMBER"), thats is a string! and i had to use System.getenv("NEW_BUILD_NUMBER").toInteger() – adrian oviedo Jul 07 '21 at 03:06
  • Well those logs are from Gradle, not Android. Most Gradle errors are very confusing, because groovy is doing a lot of magic in the background. – rekire Sep 08 '21 at 10:02
  • I've been bashing my head against the wall for hours because of this. Thanks for the tip! – K Mehta Nov 23 '21 at 08:58
  • I had the version code be the same as the Date.now() timestamp. Probably this integer is to big or something, because changing it to 130 worked. – Jaap Weijland Jan 20 '22 at 16:38
  • @JaapWeijland probably because Date.now() returns a Long, and it cannot be casted automatically to Int. – htafoya Jan 20 '22 at 16:59
25

This is a syntax error somewhere in your gradle file inside the android {} closure. If you are someone having this same problem then the best solution to this problem is to comment out portions of code inside android {} and keep running gradle sync until you have a successful build. Then slowly add back commented out lines until you find the culprit.

Dave Thomas
  • 3,667
  • 2
  • 33
  • 41
18

Best thing you can do is comment parts of your build.gradle file related to the issue until you get a good build and them uncomment 1 by 1 until you find the problem. I had the same error and it was related with a typo in one of the app build.gradle blocks. I was using:

android {
    ...
    buildFeature {
        ...
    }
}

instead of

android {
    ...
    buildFeatures {
        ...
    }
}

Good luck!

Brahyam
  • 311
  • 2
  • 4
18

in my case I needed to comment out this lines in gradle

androidExtensions{
    experimental = true
}
mahmood
  • 369
  • 3
  • 8
17

This issue is usually related to some change on build.gradle file, for example in my case, was this line in the defaultConfig section on that file:

versionCode 1.1

I changed it to:

versionCode 2

and problem fixed.

manuelpgs
  • 1,283
  • 1
  • 14
  • 20
14

I removed this code from my Gradle:

javaCompileOptions {
        annotationProcessorOptions {
            includeCompileClasspath true
        }
    }
Shogun Nassar
  • 606
  • 7
  • 16
13

In Android Studio 2021.1.1 Canary 12, I removed

plugins{
   ...
   id 'kotlin-android-extensions'
}

But forgot to remove this from

android{
    androidExtensions {
            experimental = true
        }
}

after removing androidExtension block my problem solved

Mona Baharlou
  • 1,401
  • 1
  • 13
  • 26
11

There's no unique solution for this error, except that it's a syntax error inside build.gradle file.

bra.Scene
  • 628
  • 8
  • 14
9

I was checking a very old project from Github and found the solution by matching the app level build.gradle file with my current project, hence the solution is to replace

runProguard false

with

minifyEnabled false

It must've been deprecated and removed in a later build which caused a similar issue - No signature of method: build_6f958jjxpxn7lllu9wu5brezx.android()

Lalit Fauzdar
  • 5,953
  • 2
  • 26
  • 50
9

I just removed useProguard true in build.gradle > android > buildTypes, and it worked for me.

Sumit Saurabh
  • 1,366
  • 1
  • 19
  • 33
  • I tried almost all the above and below options......And I just removed useProguard true from my Gradle file and its working now – Himanshu Feb 10 '23 at 10:11
7

I'm using JAVA, but for some reason Android Studio added kotlinOptions into android block without my knowledge. And then the same error happened. I put here just in case someone need it.

android {
    // ...

    // remove this block if you are using Java
    kotlinOptions {
        jvmTarget = '1.8'
    }

    // ...
}
Rem
  • 176
  • 3
  • 7
5

It is because there's syntax error in android{..} part of build.gradle You've used implementationSdkVersion which should ideally be compileSdkVersion. Error in variable names in android{..} leads to such errors.

TLDR;

Replace implementationSdkVersion with compileSdkVersion

Suraj Kumar Sau
  • 438
  • 6
  • 10
4

i was trying to add parcelable plugin in my project. this was the same error in my case too. Because, JetBrains extracted the Parcelize from Kotlin Android Extensions to a new plugin, kotlin-parcelize

So, If you want to add easy parcelable in kotlin then follow these steps:

First you will need to add kotlin-parcelize plugin to your module

plugins {
    ..
    id 'kotlin-parcelize'
}

Then change your old import statement from

import kotlinx.android.parcel.Parcelize

to

import kotlinx.parcelize.Parcelize

Example:

import kotlinx.parcelize.Parcelize

import android.os.Parcelable

@Parcelize
class User(

val name: String, 
val age: Int

): Parcelable
  • 2
    if this doesn't work, also have to remember to remove following from gradle (inside android {} ) if previously using `kotlin-android-extensions`: androidExtensions { experimental = true } – Stefan Indaco Jun 15 '21 at 22:02
3

I'm new to Android but i got a message similar to yours today when i try to use a different version (not the suggested ones) of the Gradle plugin and gradle engine on Android Studio 4.1 canary.

When I had on my App build.gradle these lines:

task wrapper(type: Wrapper){
    gradleVersion = '5.6.4'
}

and on my build.gradle for the module this line

classpath 'com.android.tools.build:gradle:3.6.3' 

This was the message i got with previous settings:

A problem occurred evaluating project ':app'.
> No signature of method: build_5dcjpn4h9nkpym0yszxs5w2uh.android() is applicable for argument types: (build_5dcjpn4h9nkpym0yszxs5w2uh$_run_closure1) values: [build_5dcjpn4h9nkpym0yszxs5w2uh$_run_closure1@2e4515b3]

The way i found to solve this error was changing version for the gradle plugin on my build.gradle for the module like this

classpath 'com.android.tools.build:gradle:4.0.0' 

I hope this could help you. Happy coding!

3

For me I had updated firebase-crashlytics-gradle from 2.5.2 to 2.7.1 in my project build.gradle and that caused the issue.

dependencies {
    [...]
    classpath "com.google.firebase:firebase-crashlytics-gradle:2.7.1
}

I removed an unnecessary firebaseCrashlytics configuration in my app module build.grade and then it worked again:

// TODO this entire block had to be deleted to fix the issue
firebaseCrashlytics {
    mappingFileUploadEnabled = false
}
Oliver Metz
  • 2,712
  • 2
  • 20
  • 32
3

This problem is common in Flutter 2.8

  1. Delete Folder with all sub Folder of C:\Users\LENOVO\.gradle

  2. Go File menu > Setting (Ctrl+Alt+S) Go Appearance & Behaviour > System Setting > Android SDK > SDK Tool Tab and then uncheck Android SDK Build-Tool press OK Button 3)Run Project (Shift+F10) in Andriod Studio it will Download all required files from the internet and your issue resolve

    enter image description here

After if the issue is Not resolved then Second Step is:

  1. Go > android\app\build.gradle in your project Please Add > minSdkVersion 19 or 20 // Remove it because, 16 is by default minSdkVersion in flutter 2.8 //minSdkVersion flutter.minSdkVersion
  2. add multiDexEnabled true if file size increase from limits

enter image description here

3

Remove namespace from the android block and put the package name back into AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="you.package.here">

</manifest>
PGMacDesign
  • 6,092
  • 8
  • 41
  • 78
miguel
  • 16,205
  • 4
  • 53
  • 64
2

I added debug under buildTypes in the gradle file and missed a comma after "API_URL":

not working:

buildTypes {
    ...
    debug {
        buildConfigField "String", "API_URL" "\"http://myapi.com/\""
    }
}

working:

buildTypes {
    ...
    debug {
        buildConfigField "String", "API_URL", "\"http://myapi.com/\""
    }
}

good luck!

Hooni
  • 354
  • 1
  • 4
  • 13
2

For me, the problem was in this block

defaultConfig {
        applicationId "abc"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 12.1 **-> 13**
        versionName "3"
    }

The 'versionCode' mustn't be a decimal number

GoWithTheFlow
  • 252
  • 6
  • 16
2

I had a problem similar to @LalitFauzdar 's but with a different solution. A plugin that I'm using requires custom ProGuard rules for release builds, but adding a reference to the rules file in the app gradle file resulted in the error in question. Here is the offending line, commented-out:

buildTypes {
  release {
    signingConfig signingConfigs.release
    // proguardFiles 'proguard-rules.pro'
  }
}
WillHaslett
  • 668
  • 7
  • 13
  • Yes, this line was the culprit for my case too. Also, the console error logs are HORRIBLE. Seriously, google couldn't have come up with worse logs. – kc_dev Dec 08 '21 at 05:53
2

I had this error when i added 2 product flavors to my build.gradle app module file with the following names:

productFlavors {
    normal-sv1 {
    ...
    }
    normal-sv2 {
    ...
    }
}

Found out that this error was because of the '-' int the middle of the flavors' names. When i used '_' instead of '-', like below, the error was gone.

productFlavors {
    normal_sv1 {
    ...
    }
    normal_sv2 {
    ...
    }
}
2

I received this error while creating a new Jetpack Compose project. 'app' module's build.gradle was cracking up.

Removing packagingOptions did the trick for me ->

packagingOptions {
        
        resources {
            excludes += '/META-INF/{AL2.0,LGPL2.1}'
        }
        
    }
}
Harisewak
  • 570
  • 6
  • 15
2

There is no general answer to this problem. There is just something wrong with the app/build.gradle.

In my case I defined a variable named versionCode which caused the error. Renaming it to e.g. versionCode_ fixed the problem.

ploth
  • 435
  • 8
  • 16
2

you only need to remove the below line from your build.gradle file in the app level

useProguard = true
2

I had same problem, so I tried to comment element inside android{} one by one

After commenting

    //    appVersion '3.1.3'
    //    outputFileName 'wmc' 
    //    enableCrashlytics()
    //    ignoreNonProductionReleaseVariants()

it worked fine.

helvete
  • 2,455
  • 13
  • 33
  • 37
Dhvani023
  • 877
  • 5
  • 8
1

Make sure you are using the kotlin android plugin instead of the kotlin jvm plugin.

apply plugin: 'kotlin-android' // NOT kotlin-jvm
cambunctious
  • 8,391
  • 5
  • 34
  • 53
1

Try to comment this in your app level build.gradle file

openOptions {
    disable 'InvalidPackage'
}
1

I had a similar issue because I had added a trailing comma , in defaultConfig in android/app/build.gradle

Raphael Pinel
  • 2,352
  • 24
  • 26
1

I had mispelled signingConfig as signingConfigs

So it is actually signingConfig signingConfigs.{yourVariantName}

And NOT signingConfigs signingConfigs.{yourVariantName}

gtxtreme
  • 1,830
  • 1
  • 13
  • 25
0

I had this exact same issue. It is a nasty one.

I followed the answer first here Deprecated Gradle features not compatible and ran in the terminal

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

the gradlew command gave more detialed feedback, and turned out my Java and JDK were 32bit instead of 64 and also outdated...

This resulted in further errors, but could resolve them step by step: Invalid initial heap size -Xms4096M Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_151 contains a valid JDK installation

Boken
  • 4,825
  • 10
  • 32
  • 42
giorgio79
  • 3,787
  • 9
  • 53
  • 85
0

Thanks for mentioning to just comment things and test, for me it was:

kapt {
    useBuildCache = true
}

Removed it, everything was building again. Happened after updating Kotlin version.

cV2
  • 5,229
  • 3
  • 43
  • 53
0

Old issue but worth noting you might need to follow the migration guide here if you see this issue:

https://developer.android.com/topic/libraries/view-binding/migration

For me, removing the line apply plugin: 'kotlin-android-extensions' and adding view binding as below resolved the issue:

buildFeatures {
    viewBinding true
}
Victor Ude
  • 415
  • 4
  • 13
0

I got this problem after adding

kapt {
    // etc
}

because I hadn't added:

apply plugin: 'kotlin-kapt'
Edmund Johnson
  • 709
  • 8
  • 15
0

For me the reason was misspelling the native libs command for gradle, as of version updates and old tutorials.

    externalNativeBuild {
        ndkBuild {
            path 'Android.mk'
        }
    }

... 
// But i had:  
    externalNativeBuild {
        ndk {
            path 'Android.mk'
        }
    }

But as the number of answer indicate, there are several possibilites for this issue.
Most probably after some version updates some gradle functions are no longer available.

Hatzen
  • 408
  • 2
  • 9
  • 16
0

I have been struggling with the error after adding Flutter flavors. Apparently if you have flavor names which contain - it won't work.

e.g. Transformed names from test-preprod to test_preprod and it is now working.

0

For me it was useIR true inside kotlinOptions

Matt Robertson
  • 2,928
  • 5
  • 34
  • 62
0

Most of the time its missing dependencies, if you are using "dagger/Hilt"

  • Ensure its added in project level build.graddle
   dependencies {
       // ....
        classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
    
    }
  • add hilt plugin in the app level build.graddle
plugins {
 //....
    id 'dagger.hilt.android.plugin'
}
  • add complete hilt and dagger dependencies
   //hilt

    implementation "com.google.dagger:hilt-android:$hilt_version"

    // Dagger Core 
    implementation "com.google.dagger:dagger:2.28"
    kapt "com.google.dagger:dagger-compiler:2.28"

    // Dagger Android
    api 'com.google.dagger:dagger-android:2.35.1'
    api 'com.google.dagger:dagger-android-support:2.31'
    kapt 'com.google.dagger:dagger-android-processor:2.31'

//Dagger - Hilt
    implementation "com.google.dagger:hilt-android:2.32-alpha"
    kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
FEELIX
  • 407
  • 4
  • 8
0

For me, the problem was that the Gradle Plugin update assistant replaced this:

aaptOptions {
    noCompress "..."
}

With this:

androidResources {
        noCompress '...'
}

Undoing it, solved the build error. Of course this is just a workaround.

falconforce
  • 140
  • 1
  • 5
0

Remove this line, it will work.

includeCompileClasspath true

Visal Varghese
  • 436
  • 5
  • 14
  • 1
    This works for me. `includeCompileClasspath true` is deprecated in AGP 4.2 [see](https://developer.android.com/studio/build/dependencies?utm_source=android-studio#annotation_processor), maybe deleted in AGP 7.0. – Vít Kapitola Jan 30 '22 at 16:55
  • This work for me too. I was using `javaCompileOptions { annotationProcessorOptions includeCompileClasspath false}}` after remove this code. It work. – Quimbo Jun 02 '22 at 06:35
0

Today I got this error when I was making signed apk and I made a mistake while doing setup for playstore, In android/app/build.gradle

signingConfigs{
debug{
 .....
 .....
}
release {....}  // I added the release config outside the signing config
}

Correct-way-todo-just-for-ref

Bilal Yaqoob
  • 790
  • 1
  • 10
  • 22
0

I had the same problem with a vanilla just-created new project in Android Studio Bumblebee (2021.1):

The auto-generated build.gradle had this in it:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles
            getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

Notice that proguardFiles "function call"'s parameters are on a separate line, this is not valid Groovy code.

TWiStErRob
  • 44,762
  • 26
  • 170
  • 254
0

In my case I need to remove following in app/build.gradle:

packagingOptions {
        jniLibs {
            pickFirsts += ['lib/armeabi-v7a/libc++_shared.so', 'lib/arm64-v8a/libc++_shared.so', 'lib/x86/libc++_shared.so', 'lib/x86_64/libc++_shared.so']
        }
    }
suther
  • 12,600
  • 4
  • 62
  • 99
0

I had this issue, and tried out all the possibilities of the answers given. Most of the answers suggested to disable proguard. But I wanted to use Proguard. So by enabling Proguard i was able to fix this issue.

Following thing worked for me. I have been pointing

classpath 'com.android.tools.build:gradle:7.2.1'

in android/build.gradle. Now to overcome this issue i pointed to

classpath 'com.android.tools.build:gradle:4.1.3'

Hope this helps for you as well !

AmigoPal
  • 39
  • 1
  • 4
0

As answered by @miguel, I solved the said issue by removing the namespace line from android block under Gradle. I am going to share a screenshot which may elaborate the solution clearly. enter image description here`

// namespace 'com.flashy.texting'`

Sajidkhan
  • 608
  • 7
  • 16
0

If you are trying to reduce aab file size and add some config to build.gradle file.

Remove these 2 lines will help

   buildTypes {
        release {
            shrinkResources true // <- this
            useProguard true // <- this
            .....
ANDYNVT
  • 531
  • 4
  • 19
0

useProguard true command this line under app/build.gradle

//useProguard true

vitralyoz
  • 570
  • 7
  • 14
0

Very simple! This is specific to a project, not entirety of all projects.

This worked for me: Erase the entire thing in your android/app/build.gradle But backup before you do! Please!!

Replace everything with any of your project that-is-working's android/app/build.gradle, and replace the applicationId with the original.

I hope this works your you too!

0

I my case, I had to remove this from the app/build.gradle

useProguard true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

James Idowu
  • 223
  • 3
  • 4
0

In my case (old flutter project), the solution was to remove the "^" in pubspec.yaml for the lib causing troubles. The caret sign looks for any version from the specified version up to (but not including) the next non-breaking version is ok.

replace

pub: ^x.x.x

by

pub: x.x.x

It was making conflicts with a more recent version of the package

Florian K
  • 2,033
  • 1
  • 9
  • 21
0

In my case I mistakenly wrote the below lines TWICE.

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
Rumit Patel
  • 8,830
  • 18
  • 51
  • 70
-2

In my case, the error cause is below

compilpepeeSdkVersion

rather than

compileSdkVersion
Boken
  • 4,825
  • 10
  • 32
  • 42
oiyio
  • 5,219
  • 4
  • 42
  • 54