Gradle build:找不到参数的方法signingConfig()
Posted
技术标签:
【中文标题】Gradle build:找不到参数的方法signingConfig()【英文标题】:Gradle build: Could not find method signingConfig() for arguments 【发布时间】:2018-09-20 01:01:29 【问题描述】:如果我正在尝试更新 Cordova android 项目。
更新平台版本后出现如下错误:
Gradle 'android' 项目刷新失败
错误:找不到参数的签名配置()方法 [SigningConfig_Decoratedname=configFlavor1, storeFile=C:\myApp\project\platforms\android\app\keystore\flavor1.keystore, storePassword=mysecretpw,keyAlias=flavor1,keyPassword=mysecretpw, storeType=C:\myApp\project\platforms\android\app\keystore\flavor1.keystore, v1SigningEnabled=true, v2SigningEnabled=true, null] on ProductFlavor_Decoratedname=flavor1, dimension=null, minSdkVersion=DefaultApiVersionmApiLevel=16, mCodename='null', targetSdkVersion=DefaultApiVersionmApiLevel=26, mCodename='null', renderscriptTargetApi=null,renderscriptSupportModeEnabled=null, renderscriptSupportModeBlasEnabled=null, renderscriptNdkModeEnabled=null,versionCode=null,versionName=null, applicationId=com.myapp.flavor1, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments=, testHandleProfiling=null,testFunctionalTest=null,signingConfig=null, resConfig=null, mBuildConfigFields=, mResValues=, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders=, mWearAppUnbundled=null 类型 com.android.build.gradle.internal.dsl.ProductFlavor.
我的 build.gradle 如下所示:
android
signingConfigs
configFlavor1
keyAlias 'flavor1'
keyPassword 'mysecretpw'
storeFile file('./keystore/flavor1.keystore')
storePassword 'mysecretpw'
configFlavor2
keyAlias 'flavor2'
keyPassword 'mysecretpw'
storeFile file('./keystore/flavor2.keystore')
storePassword 'mysecretpw'
sourceSets
main
manifest.srcFile './src/main/AndroidManifest.xml'
java.srcDirs = ['.src/main/java']
resources.srcDirs = ['.src/main/java']
aidl.srcDirs = ['.src/main/java']
renderscript.srcDirs = ['.src/main/java']
res.srcDirs = ['.src/main/res/myapp']
assets.srcDirs = ['.src/main/assets']
jniLibs.srcDirs = ['./src/main/libs']
flavor2
res.srcDirs = ['res/flavor2']
defaultConfig
versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0")
if (cdvMinSdkVersion != null)
minSdkVersion cdvMinSdkVersion
applicationId 'com.myapp.flavor1'
minSdkVersion 16
targetSdkVersion 26
lintOptions
abortOnError false;
compileSdkVersion cdvCompileSdkVersion
buildToolsVersion cdvBuildToolsVersion
flavorDimensions "flavor1", "flavro2"
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
productFlavors
flavor1
minSdkVersion 16
targetSdkVersion 26
applicationId 'com.myapp.flavor1'
signingConfig signingConfigs.configFlavor1,
dimension "flavor1"
flavor2
minSdkVersion 16
targetSdkVersion 26
applicationId 'com.myapp.flavor2'
signingConfig signingConfigs.configFlavor2,
dimension "flavor2"
buildTypes
release
zipAlignEnabled true
signingConfig signingConfigs.release
addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
签名配置(密钥/密码)在旧版本上按预期工作。 我在新 build.gradle 上更改的一件事是添加 flavorDimensions(Android Studio 要求定义它们)。
我不知道为什么签名配置被标记为无效。
任何帮助表示赞赏 - 在此先感谢!
【问题讨论】:
是否没有与错误相关的行号? 【参考方案1】:您必须在签名块中添加此 DSL,而不是在 buildTypes 块中。
signingConfigs
release
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
【讨论】:
谢谢,我在signingConfigs上明确添加了release,但错误依旧 将您的 signingConfigs 块移动到您的 buildTypes 块之前: signingConfigs 块已经在顶部,参见上面的示例【参考方案2】:发生错误
signingConfig signingConfigs.configFlavor1,
dimension "flavor1"
使用逗号的地方:x
【讨论】:
以上是关于Gradle build:找不到参数的方法signingConfig()的主要内容,如果未能解决你的问题,请参考以下文章
build.gradle 文件中的 compileKotlin 块抛出错误“找不到参数的方法 compileKotlin() [...]”
在以下类型的对象上找不到参数 [com.android.tools.build:gradle:3.3.0] 的方法 classpath():
Gradle 和 proguard:找不到参数的方法 runProguard() [true]
找不到方法“com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;”
Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Lja