Gradle构建:找不到签名配置(signingConfig())方法的参数。

3

如果我试图更新 Cordova Android 项目。

在更新平台版本后,会出现以下错误:

Gradle 'android' 项目刷新失败

Error:Could not find method signingConfig() for arguments [SigningConfig_Decorated{name=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_Decorated{name=flavor1, dimension=null, minSdkVersion=DefaultApiVersion{mApiLevel=16, mCodename='null'}, targetSdkVersion=DefaultApiVersion{mApiLevel=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} of type 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要求定义它们),这是我所做的唯一更改。

我不知道为什么签名配置被标记为无效。

任何帮助都将不胜感激 - 先行致谢!


错误信息中没有行号吗? - Peter Ledbrook
2个回答

3

您需要将此DSL添加到签名块中,而不是buildTypes块中。

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

            }


}

1
谢谢,我已经在signingConfigs{}中明确添加了发布版本,但错误仍然相同。 - kerosene
1
将你的 signingConfigs 块移动到 buildTypes 块之前: - Qandil Tariq
1
签名配置块已经在顶部,参见上面的示例。 - kerosene

0

发生错误在

签名配置 signingConfigs.configFlavor1, dimension "flavor1"

逗号用错了 :x


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接