没有方法签名: .android() 适用于参数类型。build.gradle (app) 中的异常

Gau*_*dit 12 java android gradle android-studio build.gradle

  • 例外是:org.gradle.api.GradleScriptException:评估项目“:app”时出现问题

引起:groovy.lang.MissingMethodException:没有方法签名:build_h12dou32x8mktsbcdinr8fpc.android() 适用于参数类型:(build_h12dou32x8mktsbcdinr8fpc$_run_closure1) 值:[build_h12dou32bc1fpc6rd_run_closure1]

And*_*des 44

处理此问题的最佳方法是进入android { ... }块并开始注释不同的方法/块,直到配置超越错误.android(),您就会知道哪个块导致了该错误。就我而言,这是块中已弃用的方法buildTypes { ... }

  • 我也用这个解决了。就我而言,它也是 buildTypes 中的 useProguard,删除它并且它有效 (6认同)
  • 我通过这种技术得到了帮助,谢谢 (2认同)

Tob*_*kwu 30

我最近也遇到了类似的麻烦。我必须使用另一个没有任何问题的项目中的“build.gradle”文件重新运行该项目。然后我将问题范围缩小到useProguard true。我注释掉后问题就消失了,useProguard true如下所示:

buildTypes {
    release {
        signingConfig signingConfigs.release
        minifyEnabled true
        //useProguard true  <-- remove this line
        proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
    debug {
        signingConfig signingConfigs.debug
    }
}
Run Code Online (Sandbox Code Playgroud)


dnh*_*yde 23

从移动时迁移到AGP 7.0,当我有同样的问题aaptOptionsandroidResources

对我来说足以取代

androidResources {
   noCompress '...'
}
Run Code Online (Sandbox Code Playgroud)

aaptOptions {
   noCompress '...'
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢先生的贡献,我非常感谢您在 2 小时努力寻找问题后的回答。 (3认同)
  • 这个错误还有其他可能性吗?我的 build.gradle 中没有“androidResources” (2认同)

Ada*_*ges 13

我通过从 app/build.gradle 中删除“useProguard”来修复此错误,如下所示:

buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            shrinkResources true

            // useProguard true <-- removed this
            proguardFiles(
                    getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
            )
        }
    }
    
Run Code Online (Sandbox Code Playgroud)

我希望这对某人有帮助!


Nic*_*hek 11

我在迁移到时遇到了同样的问题'com.android.tools.build:gradle:7.0.0'

我删除了代码:

javaCompileOptions {
            annotationProcessorOptions {
                arguments = [fragmentArgsLogWarnings: 'false']
                includeCompileClasspath true
            }
        }
Run Code Online (Sandbox Code Playgroud)

这是关于如何为 kapt 再次添加它的说明 https://github.com/sockeqwe/fragmentargs#annotation-processor-options


bra*_*ene 9

对此没有唯一的答案,除了它是build.gradle文件内的语法拼写错误。


mol*_*oka 8

kotlinOptionslambda 在我的例子中引起了错误。

android {
...
    kotlinOptions {
        jvmTarget = "11"
    }
...
}
Run Code Online (Sandbox Code Playgroud)

当我删除它时 - 一切又开始恢复正常。


e.h*_*did 7

就我而言,build.gradle(app) 中有一个不需要的字符(分号)

我删除了它并重新构建了项目

问题解决了。


Dev*_*ush 6

我使用 - (在 build.gradle 中)“versionCode”作为 RN-2 (*因为我在 React Native 中开发),然后我尝试使用“versionCode”作为 3.1,但这也引发了错误,然后我使用 - versionCode 4

这次构建成功了

我的学习-> versionCode 应该是整数*


Mig*_*más 6

该错误可能有多种根源。最常见的一种情况是由于build.gradle文件中的语法拼写错误,并且没有简单的方法来发现它。

我的建议。从另一个项目上的工作 build.grade 文件复制代码并替换引发错误的部分。


小智 5

对我来说,当我降级 GradleVersion 和一些依赖项时,我必须从build.gradle (:app)中删除这一行

android {
...
    namespace 'com.yourpackagename' <-- delete this line
...
}
Run Code Online (Sandbox Code Playgroud)


Gau*_*dit 2

我得到了解决方案。项目中有一个图书馆,

plugins {
    id 'com.android.library'
}
Run Code Online (Sandbox Code Playgroud)

在库的build.gradle文件中。我添加了同样的,

plugins {
    id 'com.android.library'
}
Run Code Online (Sandbox Code Playgroud)

在应用程序的 build.gradle 文件中。正是它导致了这个错误。我把它改回,

plugins {
    id 'com.android.application'
}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。