最近我已经将项目升级到Android Studio 3.2.1,Gradle 4.6,Gradle插件4.6和tagetSDKVersion28。
但是我在合并的values.xml文件中遇到错误-
错误:内部元素必须是资源引用或为空。
合并的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资源编译失败 输出: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 \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:6882:错误:内部元素必须是资源引用或空的。 C:\ AmrutData \ Workspace \ Q4 \ Mobile-Quitters-Circle-Android \ app \ build \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:6883:错误:内部元素必须是资源引用或空的。 C:\ AmrutData \ Workspace \ Q4 \ Mobile-Quitters-Circle-Android \ app \ build \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:6884:错误:内部元素必须是资源引用或空的。 C:\ AmrutData \ Workspace \ Q4 \ Mobile-Quitters-Circle-Android \ app \ build \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:6885:错误:内部元素必须是资源引用或空的。 C:\ AmrutData \ Workspace \ Q4 \ Mobile-Quitters-Circle-Android \ app \ build \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:6886:错误:内部元素必须是资源引用或空的。 C:\ AmrutData \ Workspace \ Q4 \ Mobile-Quitters-Circle-Android \ app \ build \ intermediates \ incremental \ mergeStageDebugResources \ 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 \ intermediates \ incremental \ mergeStageDebugResources \ merged.dir \ values \ values.xml:7419:警告:忽略具有未知名称空间'的元素'g' http://schemas.android.com/apk/res/android'。
命令: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编译-旧版\ -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 守护进程:AAPT2 aapt2-3.2.1-4818971-windows守护进程#0
我确定这些不是我的值,并且大多数是来自类com.android.datetimepicker.date.DatePickerDialog
的,而且由于这些是库中的而不是我的项目中的,所以我没有得到如何解决此问题的方法。 / p>
请协助
答案 0 :(得分:3)
我只是替换以下代码
<item type="id" name="checkColor">false</item>
到
<item type="id" name="checkColor"></item>
答案 1 :(得分:2)
解决方案是: 在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 :(得分:2)
经过大量搜索,我发现这是导致此问题的我的图书馆之一。我使用的库与gradle 3.2.1不兼容,这导致了编译问题。
答案 3 :(得分:1)
在其他答案中,您需要确保item元素没有引发异常的内部值。
在某些情况下,这些文件可能来自外部库,因此无法直接修改,在这种情况下,请在res / values文件夹中创建一个名为ids.xml的文件。
在这里您可以覆盖任何引起问题的项目,对我来说,我添加了以下内容来解决问题中所述的问题。
<uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public">
<packagedElement xmi:type="uml:Package" xmi:id="EAPK_9E00FA41_6F28_4e47_9AE6_2A04EE92CDBB" name="sequenceD" visibility="public">
<packagedElement xmi:type="uml:Collaboration" xmi:id="EAID_AC000001_6F28_4e47_9AE6_2A04EE92CDBB" name="EA_Collaboration1" visibility="public">
</packageElement>
</packageElement>
</uml:Model>
答案 4 :(得分:1)
在项目的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>