当前位置: 首页 > 知识库问答 >
问题:

resValue gradle错误:“generated.xml”中不支持的类型“string”

韩彦君
2023-03-14
gradlew build
* What went wrong: Execution failed for task ':app:merge<buildVariant>Resources'.
Unsupported type 'String' in file C:\Users\...\build\res\generated\release\values\generated.xml

其他的构建测试都不会创建这个文件。我试着如下:

    IDE上的
    • 重建项目
    • 执行外部任务“AssembleBuildVariant”
    • Gradlew AssembleBuildVariant
    :app:generateBuildVariantResValues UP-TO-DATE
    
    buildTypes {
        debug{
            buildConfigField "String", "FOO", "\"FOO DEBUG\""
            resValue "String", "RES FOO", "RES FOO DEBUG"
        }
        release {
            buildConfigField "String", "FOO", "\"FOO RELEASE\""
            resValue "String", "RES FOO", "RES FOO RELEASE"
        }
    }
    
    <!-- Automatically generated file. DO NOT MODIFY -->
    
    <!-- Values from build type: release -->
    <item name="RES FOO" type="String">RES FOO RELEASE</item>
    

    这是窃听器还是我漏掉了什么?为什么这个文件不是通过IDE上的rebuild创建的?

    我的构建。Gradle(更新2014-02-10,基于rciovatis的答案):

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        resValue "string", "RES_FOO", "RES FOO"
    }
    
    buildTypes {
        debug{
            buildConfigField "String", "FOO", "\"FOO DEBUG\""
            resValue "string", "RES_FOO", "RES FOO DEBUG"
        }
        release {
            buildConfigField "String", "FOO", "\"FOO RELEASE\""
            resValue "string", "RES_FOO", "RES FOO RELEASE"
        }
    }
    

    更新2014-02-14它的工作:

      null
    // for buildType DEBUG
    <item name="TESTFOO" type="string">TEST FOO DEBUG</item>
    // for buildType RELEASE
    <item name="TESTFOO" type="string">TEST FOO RELEASE</item>
    

    要获取代码中的值,只需像所有其他资源一样使用生成的资源:

    getResources().getString(R.string.TESTFOO)
    

共有1个答案

东弘扬
2023-03-14

我解决了在DefaultConfig块中添加资源的问题。对你来说,这就像是:

android {
    defaultConfig {
        resValue "string", "RES_FOO", "RES FOO RELEASE"
    }

    buildTypes {
        debug{
            buildConfigField "String", "FOO", "\"FOO DEBUG\""
            resValue "string", "RES_FOO", "RES FOO DEBUG"
        }
        release {
            buildConfigField "String", "FOO", "\"FOO RELEASE\""
            resValue "string", "RES_FOO", "RES FOO RELEASE"
        }
    }
}

请注意:

  • 项类型必须是字符串而不是字符串
  • 项名称不能包含空格(作为正常的资源名称)
 类似资料:
  • 问题内容: 我正在使用JSON请求调用REST服务,并且它以错误响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,则效果很好。我正在使用JSON库。 我尝试使用几个不同的库,但这没什么区别。 有人可以帮我解决这个问题吗? 这是我的代码: 的值为: 问题答案: 不确定原因,但是从中 删除行解决了该问题。

  • 我用JSON请求调用REST服务,它用HTTP 415“不支持的媒体类型”错误进行响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,它就可以正常工作。我正在使用JSON库。 我试着使用了几个不同的库,但没有什么不同。 有人能帮我解决这个问题吗? 这是我的代码: 是:

  • 我必须做的是,我必须在给定的URL中发布JSON数据,其中JSON看起来像 和我的功能 当我张贴它的时候;我得到一个错误 “远程服务器返回错误:(415)不支持的媒体类型。” 有人知道吗;我错在哪里?

  • 问题内容: 我正在用JSON请求调用REST服务,它给出了Http 415“不支持的媒体类型”错误。 请求内容类型设置为(“ Content-Type”,“ application / json; charset = utf8”)。 如果我在请求中不包含Json对象,则效果很好。我正在使用json的google-gson-2.2.4库。 我尝试使用几个不同的库,但这没什么区别。 有人可以帮我解决这

  • 我试图将一个包含PDF BLOB的MS SQL字段导入SOLR,并出现以下错误: 处理时出现异常:附件文档:SolrInputDocument(字段:[]):org。阿帕奇。索尔。汉德勒。数据导入。DataImportHandlerException:java。lang.RuntimeException:不支持的类型:class java。在org.String。阿帕奇。索尔。汉德勒。数据导入。D