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

Posted

技术标签:

【中文标题】没有方法签名: .android() 适用于参数类型。 build.gradle(应用程序)中的异常【英文标题】:No signature of method: .android() is applicable for argument types. Exception in build.gradle (app) 【发布时间】:2021-07-28 19:12:54 【问题描述】: 例外是: org.gradle.api.GradleScriptException:评估项目“:app”时出现问题

原因:groovy.lang.MissingMethodException:没有方法签名:build_h12dou32x8mktsbcdinr8fpc.android() 适用于参数类型:(build_h12dou32x8mktsbcdinr8fpc$_run_closure1) 值:[build_h12dou32x8mktsbcdinr8fpc$_run_closure1@1630dea1]

【问题讨论】:

清理您的项目 生成已签名的捆绑包/.apk 文件 取消选中“记住密码” 手动将密码输入“密钥存储密码”和“密钥密码”单击下一步,您就完成了! 【参考方案1】:

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

plugins 
    id 'com.android.library'

在库的 build.gradle 文件中。 我也加了,

plugins 
    id 'com.android.library'

在 app 的 build.gradle 文件中。 它导致了这个错误。 我改回了,

plugins 
    id 'com.android.application'

这解决了我的问题。

【讨论】:

所以最后,应用模块将有id 'com.android.application',而库模块将有id 'com.android.library'?我仍然坚持这个问题【参考方案2】:

在我的例子中,build.gradle(app) 中有一个不需要的字符(分号)

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

问题解决了。

【讨论】:

【参考方案3】:

我正在使用 - (在 build.gradle 中) “versionCode”为 RN-2(* 就像我在 React Native 中开发的那样) 然后我尝试将“versionCode”设置为 3.1,但这也引发了错误 然后我用 - versionCode 4

这一次构建成功

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

【讨论】:

【参考方案4】:

在从 aaptOptions 迁移到 androidResources 时,我在迁移到 AGP 7.0 时遇到了同样的问题。

对我来说,替换就足够了

androidResources 
   noCompress '...'

aaptOptions 
   noCompress '...'

【讨论】:

感谢您的贡献,非常感谢您在 2 小时的努力寻找问题后的回答。 返回是一种返回方式吗?建议从aapt升级到android资源【参考方案5】:

就我而言,我正在使用productFlavors,设置一个布尔属性。我忘了用撇号包围布尔值。

所以我改变了这个

productFlavors 
    normal 
        flavorDimension "access"
        buildConfigField 'boolean', 'IS_ADMIN', false
     

    admin 
        flavorDimension "access"
        buildConfigField 'boolean', 'IS_ADMIN', true
    

到这里

productFlavors 
    normal 
        flavorDimension "access"
        buildConfigField 'boolean', 'IS_ADMIN', 'false'
     

    admin 
        flavorDimension "access"
        buildConfigField 'boolean', 'IS_ADMIN', 'true'
    

【讨论】:

【参考方案6】:

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

我删除了代码:

javaCompileOptions 
            annotationProcessorOptions 
                arguments = [fragmentArgsLogWarnings: 'false']
                includeCompileClasspath true
            
        

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

【讨论】:

【参考方案7】:

对此没有唯一的答案,只是build.gradle 文件中的语法错字。

【讨论】:

【参考方案8】:

错误可能有很多来源。一个最常见的原因是 build.gradle 文件中的语法错误,并且没有简单的方法来发现它。

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

【讨论】:

【参考方案9】:

kotlinOptions lambda 在我的情况下导致错误。

android 
...
    kotlinOptions 
        jvmTarget = "11"
    
...

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

【讨论】:

【参考方案10】:

我的解决方案是评论 android 部分中的所有元素,同步和构建,然后取消评论。它奏效了。

【讨论】:

【参考方案11】:

处理这个问题的最佳方法是在android ... 块中开始注释不同的方法/块,直到配置移过.android() 错误并且您会知道是哪个块导致它。在我的情况下,它是 buildTypes ... 块中已弃用的方法。

【讨论】:

【参考方案12】:

我遇到了这个错误No signature of method: build_eux4i9fuz78eb5ojbn76y01n5.android() is applicable for argument types

改了就解决了

buildFeatures 
    dataBinding true

dataBinding 
    enabled = true

我认为该错误是kotlin插件版本和gradle版本之间版本冲突的原因。

【讨论】:

以上是关于没有方法签名: .android() 适用于参数类型。 build.gradle(应用程序)中的异常的主要内容,如果未能解决你的问题,请参考以下文章

没有方法签名: build_9oqkz1yq0b57t4arqvsiar91y.android() 适用于参数类型:

groovy.lang.MissingMethodException:没有方法签名:com.x.License.add()适用于参数类型:(com.x.License)值

如何修复错误:没有方法签名:build_ap86oam3dut3pxce3x49rdtma.android()?

Android查看应用签名方法

适用于 Android 的 Google 登录 - 发布与调试

使用 gradle 构建 android 项目