【错误记录】Android Studio 中 Gradle 配置报错 ( Can‘t determine type for tag ‘<item name=““ type=“String“>)

2023-03-30 15:03:55 浏览数 (1)

文章目录

  • 一、报错信息
  • 二、解决方案

一、报错信息


在 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 目录下生成了 如下配置文件 :

代码语言:javascript复制
<?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")
    }
}

0 人点赞