0

Today i have decided to update Android Studio, because the 3.1 version that I had installed seemed a bit outdated. After upgrading, building the project failed due some kind of error: <item> inner element must either be a resource reference or empty.

Full output:

Android resource compilation failed
Output:  E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2400: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2401: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2402: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2403: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2404: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2405: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2406: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2407: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2408: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2409: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2410: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2411: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2412: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2414: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2415: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2416: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2418: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2419: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2420: error: <item> inner element must either be a resource reference or empty.
E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2421: error: <item> inner element must either be a resource reference or empty.

Command: C:\Users\Manuel\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\f6068c12ec105318abf65b42f5ee35d5\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
        -o \
        E:\Desktop\testandroidstudio\app\build\intermediates\res\merged\debug \
        E:\Desktop\testandroidstudio\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0

The error points to the build file values.xml, inspecting it i think that maybe the problem is on my arrays.xml file.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="dice_types">
        <item>@string/dice4</item>
        <item>@string/dice6</item>
        <item>@string/dice8</item>
        <item>@string/dice10</item>
        <item>@string/dice12</item>
        <item>@string/dice20</item>
        <item>@string/dice100</item>
    </string-array>
    <string-array name="dice_types_int">
        <item>4</item>
        <item>6</item>
        <item>8</item>
        <item>10</item>
        <item>12</item>
        <item>20</item>
        <item>100</item>
    </string-array>
    <string-array name="spell_numbers">
        <item>@string/spell_level_0</item>
        <item>@string/spell_level_1</item>
        <item>@string/spell_level_2</item>
        <item>@string/spell_level_3</item>
        <item>@string/spell_level_4</item>
        <item>@string/spell_level_5</item>
        <item>@string/spell_level_6</item>
        <item>@string/spell_level_7</item>
        <item>@string/spell_level_8</item>
        <item>@string/spell_level_9</item>
    </string-array>
    <string-array name="ability_shorts">
        <item>STR</item>
        <item>DEX</item>
        <item>CON</item>
        <item>INT</item>
        <item>WIS</item>
        <item>CHA</item>
    </string-array>
</resources>

I Googled a bit and i found out that the error is caused by an item parsed like that:

<item name="item_1" type="id">Item 1</item>

and can be solved by replacing the code with something like this:

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

But what i'm supposed to do with string-array?.

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Manuel
  • 1
  • Have a look https://stackoverflow.com/a/52077501/5909412 – P.Juni May 22 '19 at 16:07
  • 2
    Possible duplicate of [Android - Inner element must either be a resource reference or empty](https://stackoverflow.com/questions/52076491/android-inner-element-must-either-be-a-resource-reference-or-empty) – Reaz Murshed May 22 '19 at 16:19

1 Answers1

0

It sounds like you cant actually put the hard coded values inside the item tags. Put them in the @strings file and @integers file and then reference them inside your item tags?

Chad
  • 96
  • 4