Android资源编译在v3.2中失败

Ash*_*dav 19 android gradle android-studio build.gradle

所以我将Android Studio更新为v3.2.当我尝试编译项目时,构建失败.以下是错误:

Android resource compilation failed
    Output:  C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:900: error: <item> inner element must either be a resource reference or empty.

    Command: C:\Users\Ashish\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\7f1fbe9171e916e5044000cd76b749c8\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
            -o \
            C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\res\merged\debug \
            C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
    Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
Run Code Online (Sandbox Code Playgroud)

请告诉我们是否还需要更多信息.任何帮助将不胜感激.

Gab*_*den 18

我今天面临的gradle更新本次发行后3.1.43.2.0.我不知道为什么,但构建开始抛出异常.我删除了build文件夹,并删除了gradle caches文件夹但没有任何工作,所以我查看了合并values.xml,结果发现我ids.xml正在定义一个错误的ID,它被合并到values.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="downloading_package" type="id">Baixando pacote de sincronização</item>
</resources>
Run Code Online (Sandbox Code Playgroud)

显然这是在更新之前工作...对于我的情况我删除了ids.xml文件(它在项目中没用)

我希望我能知道为什么在更新之前一切正常

  • 嘿所有,它之前工作的原因是忽略了错误的值.然而,这可能会影响资源表(afaik)的大小,从而影响应用程序,并且还会导致用户相信不正确的行为(例如,您可以将字符串分配给ID).现在AAPT2对它更加严格,并且告诉您需要删除该值或使用对另一个ID的引用(以匹配该类型)而失败. (4认同)
  • 是的,你是对的!!事实证明,“ value.xml”中的错误是由于“ ids.xml”中的一行所致。我只是将`&lt;item name =“ action_settings” type =“ id”&gt; action_settings &lt;/ item&gt;`更改为`&lt;item name =“ action_settings” type =“ id”&gt; &lt;/ item&gt;`即可。无需删除整个`ids.xml`文件。 (2认同)