如何使用Android 3.3在build.gradle中加密密码?获得;无法解析符号“;在IDE中

如何使用Android 3.3在build.gradle中加密密码?获得;无法解析符号“;在IDE中,android,gradle,encryption,groovy,symbol-not-found,Android,Gradle,Encryption,Groovy,Symbol Not Found,自从Android Studio 3.3更新后,我们得到了一个奇怪的警告,其中包含一些关于加密gradle参数的遗留代码 在build.gradle中,我们有这样一行: apply from: "encryption.gradle" 在encryption.gradle中,我们有以下内容: afterEvaluate { android.applicationVariants.all { variant -> def pwd = ""; varia

自从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(“全部”)和SuppressLint(“全部”)没有帮助


在build.gradle的defaultConfig部分中,afterEvaluate是做这件事的正确位置还是更好?

即使我也面临类似的问题。因此,我将gradle恢复为3.2.1,并按预期工作,这可能是gradle 3.3的技术故障/问题


当我在gradle 3.3上时,我尝试使android studio的缓存无效,重新启动它等,但没有解决问题。

我得到错误:支持的gradle最低版本是4.10.1。当前版本为3.2.1:(您现在使用的是哪一个Android Studio版本?您的Gradle版本和Android插件版本是什么?我现在尝试了不同的版本,但无法运行,因此我们的问题似乎有所不同。但thx的回答可能会帮助其他人。我正在使用Android Studio 3.3,并已设置distributionUrl=https\://services.Gradle.org/distributions/gradle-4.6-all.zip classpath'com.android.tools.build:gradle:3.2.1'no,这些版本存在相同的问题(无法解决符号)。我猜是因为编译规则已经更改,并且不再为IDE创建R文件。帮助的是下载Android Studio 3.2.1,我在构建文件夹中的R文件中看到了变量,一切正常。但这不是一个长期解决方案。