Android 错误:<;项目>;内部元素必须是资源引用或为空?

Android 错误:<;项目>;内部元素必须是资源引用或为空?,android,android-layout,android-sdk-tools,android-gradle-3.0,Android,Android Layout,Android Sdk Tools,Android Gradle 3.0,最近,我将我的项目升级到了Android Studio 3.2.1、Gradel 4.6、Gradle插件4.6和tagetSDKVersion 28 但是,我发现merged values.xml文件中存在以下错误- 错误:内部元素必须是资源引用或为空。 导致问题的merged values.xml中的行- <item name="date_picker_day" type="id">false</item> <item name="date_pi

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

但是,我发现merged values.xml文件中存在以下错误-

错误:内部元素必须是资源引用或为空。

导致问题的merged 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>
false
假的
假的
假的
假的
假的
假的
假的
假的
准确的错误日志-

Android资源编译失败 输出:C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6866:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6881:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6882:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6883:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6884:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6885:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6886:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergestatedebugresources\merged.dir\values\values.xml:6887:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\intermediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:6896:错误:内部元素必须是资源引用或为空。 C:\AmrutData\Workspace\Q4\Mobile Quitters Circle Android\app\build\mediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml:7419:warn:忽略命名空间未知的元素“g”

命令:C:\Users\1258503.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\074CE88E9379D453662C1CF1690927A\aapt2-3.2.1-4818971-windows\aapt2.exe编译--遗留\ -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\mediates\incremental\mergeStageDebugResources\merged.dir\values\values.xml 守护程序:AAPT2 AAPT2-3.2.1-4818971-windows守护程序#0

我确信这些不是来自我的值,它们中的大多数来自类
com.android.datetimepicker.date.DatePickerDialog
,我不知道如何修复这些,因为它们来自库,而不是我的项目

请协助

解决方案是: 在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>`
`
`

这解决了我的问题…

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

我只是回复以下代码

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


另一个答案指出,您需要确保引发异常的item元素没有内部值

在某些情况下,这些文件可以来自外部库,因此无法直接修改,在这种情况下,请在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>


在项目的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>


我认为false是一个布尔值,而不是id值!!!您可以添加更多详细信息吗?@Farrokh这些值不是来自我的项目。这些来自库项目,我无法控制。如果您确定,请尝试删除库及其用法,重新编译您的项目并检查错误是否存在,然后再次添加库(如果未发现错误)我遇到类似于以下的错误,我通过将java版本更改为1_8来修复它。@NoBody我的java版本已经是1.8了,还记得是哪个库吗?我也有同样的问题。你是如何解决这个问题的?
<?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>