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

时间:2018-09-25 17:28:39

标签: android android-studio gradle 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

请告知是否需要更多信息。任何帮助将不胜感激。

11 个答案:

答案 0 :(得分:17)

在将gradle从3.1.4更新为3.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>

显然,这在更新之前是有效的...就我而言,我删除了ids.xml文件(在项目中没有用)

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

答案 1 :(得分:3)

<item>行的values.xml中的900 ...可能是资源类型id

正确的语法是(正如错误消息所指示的那样):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="id_name" />
</resources>

请参见documentation

答案 2 :(得分:2)

我刚刚在几分钟前完成了此问题,请尝试修改或删除id.xml,如果您认为没有,请尝试在应用程序的另一个模块中查找。我将我的价值资源从<item name="header_view" type="id">header_view</item>更改为<item name="header_view" type="id"/>,并且对我有用。

答案 3 :(得分:1)

我也遇到了问题,您只需找到值所在的位置,然后将其从<item type="id" name="id_name" >id_name</item>更新为<item type="id" name="id_name" />,就可以了。

答案 4 :(得分:1)

只需更改资源中存在的 attr 名称 -> 值 -> attr

plt.scatter(df.VarX, df.VarY, c= df.Category.map(colorMap), cmap=cmap)
cbar = plt.colorbar()
tick_locs = (numpy.arange(n_cat) + 0.5)*(n_cat-1)/n_cat
cbar.set_ticks(tick_locs)
cbar.set_ticklabels(_categories)

例如,如果您收到与 fontFamily 相关的错误,只需更改名称构建应用程序错误就不会出现

答案 5 :(得分:0)

在您的构建gradle(Project:name)中这样做

classpath 'com.android.tools.build:gradle:3.+'

然后重建您的项目..之后,它将显示消息,将gradle从4.6更新到4.10

答案 6 :(得分:0)

就我而言

<?xml version="1.0" encoding="utf-8"?>

在XML中重复两次。确保每个文件应位于XML顶部。

答案 7 :(得分:0)

这对我有用:

在我的build.gradle文件> dependencies中,我正在实现appcompat库的较新版本

dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:support-v4:21.0.3'
   implementation 'com.android.support:appcompat-v7:21.0.3'
   implementation 'androidx.appcompat:appcompat:1.0.2'}

评论//implementation 'androidx.appcompat:appcompat:1.0.2'后,效果很好。我建议,即使它是另一个库,也请检查您使用的版本。

答案 8 :(得分:0)

对我来说,我在布局视图和LinearLayout视图中具有布局宽度和布局高度用于数据绑定。这引发了重复的错误。我通过删除“”中的属性集来解决此问题。 layout file used for databinding

答案 9 :(得分:0)

我在<string>标记内引用时遇到了这个问题

    <string name="vj_dialogue">I'm waiting</string>

当我用反斜杠将其转义时''。问题不见了

    <string name="vj_dialogue">I\'m waiting</string>

答案 10 :(得分:-1)

在您的xml文件中,您可能忘记添加/>来支撑属性。