You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BuildConfig未更新问题:缓存无效导致local.properties配置不生效

问题描述
  • 在local.properties中设置OPT_OUT变量用于本地测试,控制插件可见性
  • 初始未定义该字段时,构建后BuildConfig.OPT_OUT为null,符合预期
  • 添加OPT_OUT=GLOBAL_SEARCH后重新构建,BuildConfig.OPT_OUT仍返回null
  • IDE鼠标悬停显示该值为"GLOBAL_SEARCH",但代码中初始化的temp1实际拿到的是null
  • 当前环境:AGP版本8.4.2,Kotlin版本2.0.0
解决方案

1. 清理构建缓存并全量重建

AGP 8.x的缓存机制可能保留旧的BuildConfig文件,执行以下操作:

  • Android Studio内操作:点击Build → Clean Project,再点击Rebuild Project
  • 终端命令执行:
    ./gradlew clean assembleDebug
    

2. 校验BuildConfig生成逻辑

确保在模块的build.gradle.kts(或build.gradle)中正确读取local.properties变量,示例代码:

// build.gradle.kts 示例
val localProps = Properties().apply {
    load(project.rootProject.file("local.properties").inputStream())
}

android {
    buildTypes {
        debug {
            buildConfigField(
                "String",
                "OPT_OUT",
                localProps.getProperty("OPT_OUT")?.run { "\"$this\"" } ?: "null"
            )
        }
    }
}

注意:赋值时必须用引号包裹字符串值,否则会被识别为未定义变量,导致实际运行时为null。

3. 重置IDE缓存

IDE缓存可能和实际构建产物不同步,操作步骤:

  • 点击File → Invalidate Caches...
  • 勾选Clear file system cache and local history
  • 点击Invalidate and Restart

4. 检查local.properties的正确性

  • 确认文件在项目根目录,而非模块子目录
  • 变量赋值无多余空格,格式严格为OPT_OUT=GLOBAL_SEARCH(等号前后不能有空格)

内容的提问来源于stack exchange,提问作者No_Name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:12:07