【问题标题】:How to encrypt passwords in build.gradle with Android 3.3? Getting "Cannot resolve symbol" in IDE如何使用 Android 3.3 加密 build.gradle 中的密码?在 IDE 中获取“无法解析符号”
【发布时间】:2019-06-17 00:36:37
【问题描述】:

自从更新到 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 部分中以某种方式更好?

【问题讨论】:

    标签: android gradle encryption groovy symbol-not-found


    【解决方案1】:

    即使我也面临类似的问题。所以我将我的 gradle 恢复为 3.2.1 并且它按预期工作,这可能是 gradle 3.3

    的技术故障/问题

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

    【讨论】:

    • 我收到错误:支持的最低 Gradle 版本是 4.10.1。当前版本是 3.2.1。 :(
    • 您现在使用的是哪个 Android Studio 版本?你的 Gradle 版本和 Android 插件版本是多少?
    • 我现在尝试了不同的版本,但无法正常工作,所以我们的问题似乎有所不同。但是谢谢回答,可以帮助其他人。
    • 我正在使用 android studio 3.3 并设置了 distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip classpath 'com.android.tools.build:毕业:3.2.1'
    • 不,这些版本有同样的问题(无法解析符号)。我猜是因为编译规则发生了变化,并且不再为 IDE 创建 R 文件。下载 Android Studio 3.2.1 有帮助,我在 build-folder 的 R 文件中看到了变量,一切都很好。但这不是一个长期的解决方案。
    猜你喜欢
    • 2013-11-15
    • 2023-01-09
    • 2021-10-02
    • 2014-04-20
    • 2014-10-17
    • 2016-06-12
    • 2015-02-13
    • 2013-05-26
    • 2020-05-20
    相关资源
    最近更新 更多