文章目录
- 一、报错信息
- 二、解决方案
一、报错信息
在 Android Studio 工程的 build.gradle 中的 " android # defaultConfig " 中配置了 resValue 属性 , 目的是生成一个 res 资源属性 ;
该操作相当于在 res/value 目录下定义了一个资源 ;
代码语言:javascript复制android {
defaultConfig {
// 生成 res/values 目录下定义的资源
resValue("String", "gradle_res_config", "Gradle Res Config")
}
}
编译时报错 :
代码语言:javascript复制Can't determine type for tag '<item name="gradle_res_config" type="String">Gradle Res Config</item>'
Can't determine type for tag '<item name="" type="String"></item>'
同时在 appbuildgeneratedresresValuesdebugvalues
目录下生成了 如下配置文件 :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Automatically generated file. DO NOT MODIFY -->
<!-- Value from default config. -->
<item name="gradle_res_config" type="String">Gradle Res Config</item>
</resources>
二、解决方案
ProductFlavor#resValue 方法的原型如下 :
代码语言:javascript复制void resValue(String type, String name, String value)
第一个参数是数据类型 , 这里的数据类型指的是在 xml 文件中定义的数据类型 ;
查看在 string.xml 配置文件中配置的应用名称 :
代码语言:javascript复制<resources>
<string name="app_name">ClassLoader_Demo</string>
</resources>
标签的名称是 string
, 首字母是小写的 , 这里注意与 String
区分 ;
使用 resValue("string", "gradle_res_config", "Gradle Res Config")
配置 ;
正确配置如下 :
代码语言:javascript复制android {
defaultConfig {
// 生成 res/values 目录下定义的资源
resValue("string", "gradle_res_config", "Gradle Res Config")
}
}