自从更新到 Android Studio 3.3 后,我们收到了一些关于加密 gradle 参数的遗留代码的奇怪警告。
在 build.gradle 我们有这一行:
apply from: "encryption.gradle"
在 encryption.gradle 我们有这样的内容:
afterEvaluate {
android.applicationVariants.all { variant ->
def pwd = "";
variant.productFlavors.each { flavor ->
if (flavor.ext.has("pwd1")) {
pwd = flavor.ext.pwd1
}
}
if (pwd.isEmpty() && variant.buildType.ext.has("pwd2")) {
pwd = variant.buildType.ext.pwd2
}
variant.resValue 'string', 'pwd', encryptPassword(pwd, variant.signingConfig, variant.applicationId)
}
}
def String encryptPassword(String password, signingConfig, String applicationId) {
...
}
在代码中我们这样使用它:
getString(R.string.pwd)
自 AS 更新以来,我们收到以下错误:
Cannot resolve symbol 'pwd'
在编译/构建项目时,一切运行良好,因为它可以找到参数。但是在 IDE 中工作时,所有尝试使用 R.string.pwd 的文件都被标记为红色并显示错误消息,这很烦人。
有什么办法可以轻松解决这个问题吗?SuppressWarnings("all") 和 SuppressLint("all") 没有帮助。
afterEvaluate 是执行此操作的正确位置,还是在 build.gradle 的 defaultConfig 部分中以某种方式更好?