Android Studio - 已定义资源条目

时间:2014-07-01 01:12:20

标签: java android android-studio android-gradle

使用Android Studio(Beta)编译我的Android应用程序后,出现以下错误:

Error:error: Resource entry background is already defined.
res\drawable-xhdpi-v4\background.9.png:0: Originally defined here.

当我有一个名为" background"的图像文件时,会发生这种情况。在我的res文件夹中。

然后我制作了它的9补丁版本并将其粘贴在同一个文件夹中。这意味着有2个文件具有相同的名称。所以我不出所料,我有这个错误。

但是我现在在我的代码和布局文件中删除了所有背景图像文件的实例(包括9补丁版本和原始图像),但我仍然有这个错误。

9 个答案:

答案 0 :(得分:60)

您可以尝试执行以下操作之一:

  • 清洁和构建或gradle clean build assemble
  • 无效并重新启动Android Studio

答案 1 :(得分:17)

1 构建>清洁项目
2 构建>重建项目

答案 2 :(得分:9)

我正在使用Android工作室,我完全按照相同的问题运行,我在网上找到的答案都没有帮助我解决问题,包括前一个问题。因此,阅读错误消息的所有细节,并找到这一行:

错误:任务':app:processDebugResources'执行失败。

  

com.android.ide.common.internal.LoggedErrorException:无法运行命令:       C:\ Users \ user \ AppData \ Local \ Android \ android-studio \ sdk \ build-tools \ android-4.4W \ aapt.exe package -f --no-crunch -IC:\ Users \ user \ AppData \ Local \ Android \ android-studio \ sdk \ platforms \ android-20 \ android.jar -MC:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ intermediates \ manifests \ debug \ AndroidManifest.xml -SC:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ intermediates \ res \ debug -AC:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ intermediates \ assets \ debug -m -JC:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ generated \ source \ r \ _ debug:FC:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ intermediates \ libs \ app-debug.ap_ --debug-mode --custom-package com.dartstransit.dartsapp -0 apk --output-text-symbols C:\ Users \ user \ AndroidStudioProjects \ DartsApp \ app \ build \ intermediates \ symbols \ debug

错误代码:

1

输出:

res\drawable-hdpi-v4\bus_w.png:0: error: Resource entry bus_w is already defined.
res\drawable-hdpi-v4\bus_w.jpg:0: Originally defined here.

正如您所看到的,在同一文件夹中有两个名为bus_w的文件,其中包含不同的扩展名。我已经从项目中删除了这些文件并仍然收到错误,所以我决定检查错误消息中编译器行中引用的项目的每个文件夹。最后发现文件夹app\build\intermediates\res\debug\drawable-mdpi-v4中有一个文件bus_w.png的副本。

我刚删除它,瞧,问题解决了。

答案 3 :(得分:3)

一个简单的构建> 重建项目帮助我

答案 4 :(得分:1)

您是否尝试将此文件重命名为其他名称?看来你的一个库有相同的资源。

我看到许多开发者(包括我)也遇到ic_launcher问题。我想您想尝试mipmap而不是drawable。所以我们会有这样的事情:

\res\mipmap-hdpi
\res\mipmap-mdpi
\res\mipmap-xhdpi
\res\mipmap-xxhdpi

希望得到这个帮助。

答案 5 :(得分:0)

我最近也遇到过这个错误。这是我的解决方案有效,希望它会对你有帮助。

1.仅在drawable-hdpi文件夹中保留9个补丁版本图像

2.确保xml文件中与此问题相关的代码保持不变:android:background="@drawable/msg_left"

而不是使用代码:

android:background="@drawable/msg_left.9"

PS:我的原始图像名称是msg_left,我的9补丁版图像名称是msg_left.9

答案 6 :(得分:0)

我通过移动图标

来完成这个工作
drawable/ic_launcher

mipmap/ic_launcher

它运行良好:)

答案 7 :(得分:0)

在我的情况下,问题是我有多个“'”。在文件名中。喜欢:

a.png
a.bold.png

解决方案是重命名为

a.png
a_bold.png

答案 8 :(得分:0)

在我们的案例中,当某些其他库升级到最新版本时,开始出现问题(错误显示库中的“资源重复价值”)。
我们只是降级了已升级的库的版本。

真正的痛苦是因为我们有很多依赖项,当存储库中有可用的新版本时,这些依赖项可以动态升级。因此,我的队友必须仔细检查所有可以动态升级的库,然后查看是否有一个最近升级的库,然后尝试对其进行降级并检查构建是否正常。他确定前一天有许多升级。将其中之一降级可以恢复构建。

我们得出的结论是不使用动态版本控制。 Don't use dynamic versions for your dependencies

这是错误:

  
    

任务:app:generateDebugResources截止日期     AGPBI:{“种类”:“错误”,“文本”:“错误:具有配置\ u0027 \ u0027的资源\ u0027attr / itemBackground \ u0027的重复值。”,“源”:[{“文件”:“ /用户/unknownuser/.gradle/caches/transforms-1/files-1.1/singledateandtimepicker-1.2.2.aar/86ae3786d70c769e610c8a01d58aa638/res/values/values.xml","position":{"startLine":15,"startColumn“: 4,“ startOffset”:2427,“ endColumn”:48,“ endOffset”:2471}}}],“原始”:“”,“ tool”:“ AAPT”}     AGPBI:{“种类”:“错误”,“文本”:“错误:此处先前定义的资源。”,“源”:[{“文件”:” / Users / unknownuser / .gradle / caches / transforms-1 / files-1.1 / singledateandtimepicker-1.2.2.aar / 86ae3786d70c769e610c8a01d58aa638 / res / values / values.xml“,” position“:{” startLine“:15,” startColumn“:4,” startOffset“:2427,” endColumn“: 48,“ endOffset”:2471}}],“原始”:“”,“工具”:“ AAPT”}

  
     

任务:app:mergeDebugResources失败   错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2错误:查看日志以获取详细信息

     

失败:构建失败,并出现异常。