【问题标题】:error: <item> inner element must either be a resource reference or empty?错误:<item> 内部元素必须是资源引用还是为空?
【发布时间】:2023-03-24 20:21:01
【问题描述】:

最近我将我的项目升级到了 Android Studio 3.2.1、Gradel 4.6、Gradle Plugin 4.6 和 tagetSDKVersion 28。

但是我在合并的 values.xml 文件中遇到错误 -

error: <item> inner element must either be a resource reference or empty.

导致问题的合并 values.xml 中的行 -

<item name="date_picker_day" type="id">false</item>
<item name="date_picker_header" type="id">false</item>
<item name="date_picker_month" type="id">false</item>
<item name="date_picker_month_and_day" type="id">false</item>
<item name="date_picker_year" type="id">false</item>
<item name="day_picker_selected_date_layout" type="id">false</item>
<item name="done" type="id">false</item>
<item name="month_text_view" type="id">false</item>
<item name="animator" type="id">false</item>

准确的错误日志

Android resource compilation failed
Output:  C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6866: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6881: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6882: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6883: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6884: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6885: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6886: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6887: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6896: error: <item> inner element must either be a resource reference or empty.
C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:7419: warn: ignoring element 'g' with unknown namespace 'http://schemas.android.com/apk/res/android'.

Command: C:\Users\1258503\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\074ce88e9379d4536b62c1cf1690927a\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
        -o \
        C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\res\merged\stage\debug \
        C:\AmrutData\Workspace\Q4\Mobile-Quitters-Circle-Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0

我确定这些不是来自我的价值观,其中大部分来自 com.android.datetimepicker.date.DatePickerDialog 类,我不知道如何解决这个问题,因为这些来自库而不是我的项目。

【问题讨论】:

  • 我认为 false 是一个布尔值,而不是一个 id 值!!!你能补充更多细节吗?
  • @Farrokh 这些值不是来自我的项目。这些来自图书馆项目,我无法控制它。
  • 如果你确定然后尝试删除库及其用法,重新编译你的项目并检查错误是否存在,然后再次添加库(如果没有发现错误)
  • 我遇到了类似这样的错误,我通过将 java 版本更改为 1_8 来修复它。
  • @NoBody 我的Java版本已经是1.8了

标签: android android-layout android-sdk-tools android-gradle-3.0


【解决方案1】:

解决办法是: 在 res/values 文件夹中创建一个名为 ids.xml 的文件并放入此内容:

`<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="sos_key_shift_state" type="id"/>
<item name="cc_card" type="id" />
<item name="cc_ccv" type="id" />
<item name="cc_entry" type="id" />
<item name="cc_entry_internal" type="id" />
<item name="cc_exp" type="id" />
<item name="cc_form_layout" type="id" />
<item name="cc_four_digits" type="id" />
<item name="cc_zip" type="id" />
<item name="text_helper" type="id" />
</resources>`

这解决了我的问题...

【讨论】:

    【解决方案2】:

    我只是替换下面的代码

    <item type="id" name="checkColor">false</item>
    

    <item type="id" name="checkColor"></item>
    

    【讨论】:

      【解决方案3】:

      在项目的 res/values 文件夹下创建一个名为 ids.xml 的文件,它应该有

      <?xml version="1.0" encoding="utf-8"?><resources>
      <item name="animator" type="id"/>
      <item name="date_picker_day" type="id" />
      <item name="date_picker_header" type="id" />
      <item name="date_picker_month" type="id" />
      <item name="date_picker_month_and_day" type="id" />
      <item name="date_picker_year" type="id" />
      <item name="day_picker_selected_date_layout" type="id" />
      <item name="done" type="id" />
      <item name="month_text_view" type="id" />
      <item name="reference" type="id" /></resources>
      

      【讨论】:

        【解决方案4】:

        经过大量搜索后,我发现这是我的图书馆之一导致了这个问题。我使用的库与 gradle 3.2.1 不兼容,导致编译出现问题。

        【讨论】:

        • 你还记得哪个库吗?我有完全相同的问题。你是怎么解决这个问题的?
        【解决方案5】:

        正如其他答案所述,您需要确保引发异常的项目元素没有内部值。

        在某些情况下,这些可以来自外部库,因此不能直接修改,在这种情况下,在文件夹 res/values 中创建一个名为 ids.xml 的文件。

        在这里,您可以覆盖任何导致问题的项目,对我来说,我添加了以下内容以解决问题中所述的问题。

        <resources>
            <item name="cc_card" type="id"/>
            <item name="cc_ccv" type="id"/>
            <item name="cc_entry" type="id"/>
            <item name="cc_entry_internal" type="id"/>
            <item name="cc_exp" type="id"/>
            <item name="cc_form_layout" type="id"/>
            <item name="cc_four_digits" type="id"/>
            <item name="cc_zip" type="id"/>
            <item name="text_helper" type="id"/>
        </resources>
        

        【讨论】:

          猜你喜欢
          • 2019-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多