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

使用resValue生成API密钥报错:无法识别item标签类型

问题解决方法

错误原因

你遇到的资源合并错误,是因为resValue指定的类型写错了——Android资源系统里的字符串类型是小写的string,不是Java里的String。这会导致生成的gradleResValues.xml里出现无效的type="String"属性,资源合并工具无法识别。

修复步骤

  1. 修正local.properties配置
    在项目根目录的local.properties里添加API密钥:

    API_KEY=wowowow
    
  2. 修改app模块的build.gradle配置
    先读取local.properties里的密钥,再用正确的类型生成资源:

    // 在build.gradle(app)文件顶部添加读取逻辑
    def localProperties = new Properties()
    localProperties.load(rootProject.file("local.properties").newDataInputStream())
    def apiKey = localProperties.getProperty("API_KEY", "") // 第二个参数是默认值,防止密钥为空
    
    android {
        // ... 其他配置
        buildTypes {
            debug {
                // 用小写的"string"作为类型
                resValue "string", "api_key", apiKey
                // buildConfigField可以正常使用,和resValue不冲突
                buildConfigField "String", "API_KEY", "\"${apiKey}\""
            }
            release {
                minifyEnabled true
                // 同样配置release环境的resValue
                resValue "string", "api_key", apiKey
                buildConfigField "String", "API_KEY", "\"${apiKey}\""
            }
        }
    }
    
  3. 重新构建项目
    执行Clean Project再Rebuild Project,生成的gradleResValues.xml里的item会变成正确的格式:

    <item name="api_key" type="string">wowowow</item>
    

关于build文件夹的警告

这个提示是正常的,build目录下的所有文件都是构建工具自动生成的,绝对不要手动编辑。只要修改build.gradle里的配置,重新构建就会自动更新这些文件,不用管这个警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:42:08