Android错误重复资源

时间:2014-12-18 13:04:40

标签: android android-layout

我是Android开发的新手,在我收到此错误时正在开发我的第一个应用程序

Error:Error: Duplicate resources: E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png:drawable-hdpi-v4/login_bg, E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png:drawable-hdpi-v4/login_bg
Error:Execution failed for task ':app:mergeDebugResources'.
> E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png: Error: Duplicate resources: E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png:drawable-hdpi-v4/login_bg, E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png:drawable-hdpi-v4/login_bg

我无法正确理解错误。什么文件在这里重复?我应该做些什么来纠正它?

P.S。用户界面是由我的朋友开发的,他是一名UI开发人员,然后他将我现在应该添加代码和功能的项目邮寄给我,这样我就很难找出可能出现的错误。

7 个答案:

答案 0 :(得分:15)

这是因为Android在您引用布局中的图片时认为以下内容相同:

E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.png
E:\Android\LED\app\src\main\res\drawable-hdpi\login_bg.9.png

login_bg.9.png图片告诉Android这张图片是9张图片。而另一幅图像login_bg.png是正常图像。但是在引用图像方面,它们被声明为相同,如以下示例所示。

普通图片:

<ImageView
    android:id="@+id/normalImage"
    android:background="@drawable/login_bg"/>

九补丁图片:

<ImageView
    android:id="@+id/ninePatchImage"
    android:background="@drawable/login_bg"/>

注意:引用Android项目的/res/drawables目录中的图片没有区别。

有关九补丁图像的更多信息,请参阅here,或者正确的术语是九补丁可绘制。作为参考,九个补丁drawable 必须声明为<name>.9.png,如同login_bg.9.png

答案 1 :(得分:7)

基本上只要xml检测到多个具有相同名称的文件,无论其扩展类型如何,都会发生这种情况。 例如: mypicture.jpg不能与mypicture.png

位于同一目录文件夹中

您的情况也是如此,不允许在同一目录文件夹中使用login_bg.9.pnglogin.png

希望这可能有用。祝你有个美好的一天

答案 2 :(得分:1)

我通过重命名两个名称不同的文件解决了这个问题。

答案 3 :(得分:1)

从可绘制目录中删除图像,因为您在一个文件夹中使用了同名导演,这是不允许的。

答案 4 :(得分:0)

使用Ant代替Gradle似乎可以解决此问题。我的许多文件都具有相同的文件名,但以不同的扩展名开头(各种类型的索引资源文件)。古老的项目,古老的解决方案对我有用。

答案 5 :(得分:0)

通过解决此问题:

Build ➞ Clean Project

祝你好运!

答案 6 :(得分:0)

我在两个diff .xml文件中找到了相同的字符串名称,

//a.xml
<string name="dialog_subscribe">关注</string>
//b.xml
<string name="dialog_subscribe">subscribe</string>

然后我通过重命名其中一个来解决