тег signingConfigs дает мне ошибку Lint в сборке.gradle после обновления до v22
у меня был следующий код в моей сборке.gradle (app) файл на некоторое время:
signingConfigs {
release {
storeFile file("D:AndroidkeystoremyApp.jks")
storePassword "myStorePw"
keyAlias "myKeyAlias"
keyPassword "MyKeyPw"
}
}
Я только что обновился до targetSdkVersion=22,что означало обновление SDK и инструментов сборки до 22. Теперь весь этот раздел выделен желтым цветом в Android Studio (141.1793788) с сообщением:
'signingConfigs' cannot be applied to '(groovy.land.Closure<com.android.build.gradle.internal.dsl.SigningConfig>)'
было ли изменение в v22, о котором мне нужно знать? Я не могу найти документацию.
2 ответов
пожалуйста, попробуйте переместить раздел 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"
}
}
}
как @GDanger спросил причину; поэтому причина проста. Когда вы определяете переменную в скрипте gradle, имейте это в виду, она не должна использоваться до ее определения.
я почти уверен, что OP определил signingConfigs
ниже buildType
config. И из-за этого он получает предупреждение.
давайте сделаем эксперимент, чтобы понять; напишите ниже код в вашем скрипте gradle:
def A = B;
def B = "I am test."
вы увидите эту ошибку, когда вы syn с Gradle в:
Error:(3, 0) Could not find property 'B' on project ':app'.
<a href="openFile">Open File</a>
но когда вы определяете это так:
def B = "I am test."
def A = B;
вы не получите никакой ошибки. Поэтому я уверен, что попытка этого небольшого эксперимента заставит вас понять, как работает компиляция в скрипте gradle. Надеюсь, это поможет. :)