作者:手机用户2602901573 | 来源:互联网 | 2023-05-17 10:19
我在build.gradle(app)文件中有以下代码:
signingConfigs {
release {
storeFile file("D:\\Android\\keystore\\myApp.jks")
storePassword "myStorePw"
keyAlias "myKeyAlias"
keyPassword "MyKeyPw"
}
}
我刚刚升级到targetSdkVersion = 22,这意味着将SDK和构建工具升级到22.现在整个部分在Android Studio(141.1793788)中以黄色突出显示,并显示以下消息:
'signingConfigs' cannot be applied to '(groovy.land.Closure)'
我需要知道的v22有没有变化?我找不到文档.
1> questioner..:
请尝试将您的signingConfigs部分移到更高位置,如下所示:compileSdkVersion和buildToolsVersion.示例如下:
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
signingConfigs {
release {
storeFile file("D:\\Android\\keystore\\myApp.jks")
storePassword "myStorePw"
keyAlias "myKeyAlias"
keyPassword "MyKeyPw"
}
}
}
这对我很有帮助,但你能解释一下原因吗?
2> TheLittleNar..:
正如@GDanger要求的原因; 原因很简单.在gradle脚本中定义变量时,请记住这一点,不应在定义之前使用它.
我非常确定OP已经定义了signingConfigs
以下buildType
配置.因此,他正在收到警告信息.
让我们做一个实验来理解; 在gradle脚本中写下以下代码:
def A = B;
def B = "I am test."
与gradle同步时,您会看到此错误:
Error:(3, 0) Could not find property 'B' on project ':app'.
Open File
但是当你这样定义时:
def B = "I am test."
def A = B;
你不会得到任何错误.因此,我确信尝试这个小实验会让您了解gradle脚本中的编译方式是如何工作的.希望这会有所帮助.:)