[Android] build.gradle.kts SigningConfig with name ‘myConfig‘ not found

SigningConfig with name ‘myConfig’ not found.

今天在写 build.gradle.kts 文件的时候,通过 getByName 一直提示 SigningConfig with name 'myConfig' not found, 但通过 signingConfigs.findByName 返回 null

println(“signingConfigs myConfig=”+signingConfigs.getByName(“myConfig”))

最后原因就是因为我把 signingConfigs 写到了 buildTypes 的后面,当把 signingConfigs 的定义放在 buildTypes 之前,就完美解决了这个问题

android {
    ...
    signingConfigs {
        create("myConfig") {
            keyAlias = keystoreProperties["keyAlias"] as String
            keyPassword = keystoreProperties["keyPassword"] as String
            storeFile = file(keystoreProperties["storeFile"] as String)
            storePassword = keystoreProperties["storePassword"] as String
        }
    }
    ...
}
android {
    ...
	buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            println("signingConfigs release="+signingConfigs.getByName("release"))
            signingConfig = signingConfigs.getByName("release")
        }
        debug {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            isDebuggable = true
            println("signingConfigs myConfig="+signingConfigs.getByName("myConfig"))
            signingConfig = signingConfigs.getByName("myConfig")
        }
    }
    ...
}

补充:

根据目录下:keystore.properties

storePassword=android
keyPassword=android
keyAlias=platform
storeFile=android_debug.keystore

build.gradle.kts

import java.io.FileInputStream
import java.util.Properties

...
// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
val keystorePropertiesFile = rootProject.file("keystore.properties")

// Initialize a new Properties() object called keystoreProperties.
val keystoreProperties =  Properties()

// Load your keystore.properties file into the keystoreProperties object.
keystoreProperties.load( FileInputStream(keystorePropertiesFile))
...

android {
    ...
    
     signingConfigs {
        create("myConfig") {
            keyAlias = keystoreProperties["keyAlias"] as String
            keyPassword = keystoreProperties["keyPassword"] as String
            storeFile = file(keystoreProperties["storeFile"] as String)
            storePassword = keystoreProperties["storePassword"] as String
        }
         create("release") {
            keyAlias = "abcd"
            keyPassword = "password"
            storeFile = file("../keystore.jks")   //根目录下
            storePassword = "password"
        }
    }
    
	buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            println("signingConfigs release="+signingConfigs.getByName("release"))
            signingConfig = signingConfigs.getByName("release")
        }
        debug {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            isDebuggable = true
            println("signingConfigs myConfig="+signingConfigs.getByName("myConfig"))
            signingConfig = signingConfigs.getByName("myConfig")
        }
    }
   
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值