You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Android Release APK构建报错:No signature of method问题排查与解决求助

解决Flutter构建Release APK时的"No signature of method"错误

问题根源

你遇到的这个错误,核心原因是在app/build.gradle的android代码块中,错误地使用了单数形式的signingConfig来定义签名配置,而Gradle的Android插件要求必须用复数形式signingConfigs来声明签名配置集合。

具体修复步骤

  1. 修正签名配置的定义语法
    打开你的app/build.gradle文件,找到android块里的这段代码:

    signingConfig {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    

    将第一行的signingConfig {修改为复数形式:

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    
  2. 额外检查项(避免后续问题)

    • 确认key.properties文件中的配置项完全正确:keyAlias、keyPassword、storeFile、storePassword的值要和你的Keystore文件信息匹配,storeFile可以使用相对路径(比如../key.jks)或绝对路径
    • 统一compileSdkVersion版本:你当前app/build.gradle中是31,而project/build.gradle里定义的是30,建议将两者统一为31,避免版本不一致引发的其他构建问题
    • 验证local.properties中的flutter.sdk路径是否正确指向你的Flutter SDK目录
  3. 重新执行构建命令
    在终端中重新运行:

    flutter build apk --split-per-abi
    

为什么这个错误会发生?

在Gradle的Android构建规则里:

  • signingConfigs(复数)是用来定义所有签名配置集合的顶层节点
  • 而单数的signingConfig是用来在buildTypes中指定使用哪个已定义的签名配置(比如你在buildTypes.release里写的signingConfig signingConfigs.release是完全正确的)

你之前的代码把定义签名配置的节点写错了单数形式,导致Gradle找不到对应的方法,从而抛出了"No signature of method"的异常。

内容的提问来源于stack exchange,提问作者diadntjr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:59:09