Flutter构建App Bundle报Could not find method signingConfigs()错误求助
问题根因
signingConfigs是Android Gradle插件提供的专属配置项,必须放在android {}代码块内部,你当前把它定义在了Android插件应用代码apply plugin: 'com.android.application'之前、且在android {}块外,Gradle无法识别该方法,因此抛出找不到方法的错误。- 另外
buildTypes.release下配置签名的属性名错误,应该用单数signingConfig,你用了复数signingConfigs也会导致后续配置失效。
修复步骤
- 剪切当前写在
android {}块外的整个signingConfigs {}代码段,粘贴到android {}块内部,放在defaultConfig之后、buildTypes之前的位置。 - 将
buildTypes.release代码段里的signingConfigs signingConfigs.release修改为signingConfig signingConfigs.release,把复数形式改为单数。 - 如果你需要适配API 28,将
compileSdkVersion和targetSdkVersion的值从29改为28即可。
修改后核心代码示例
// 前面读取local.properties、flutter配置、keystore配置的代码保持不变 def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 28 // 改为你需要的API 28 lintOptions { disable 'InvalidPackage' } defaultConfig { applicationId "com.example.navigation" minSdkVersion 16 targetSdkVersion 28 // 改为你需要的API 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } // signingConfigs移到此处 signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { // 复数改为单数 signingConfig signingConfigs.release } } } // 后面flutter、dependencies配置保持不变
修改完成后重新执行构建命令即可正常生成App Bundle文件。
内容的提问来源于stack exchange,提问作者Charles Down
相关产品推荐
相关产品推荐

