如果我试图更新 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要求定义它们),这是我所做的唯一更改。
我不知道为什么签名配置被标记为无效。
任何帮助都将不胜感激 - 先行致谢!