我是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开发人员,然后他将我现在应该添加代码和功能的项目邮寄给我,这样我就很难找出可能出现的错误。
答案 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.png
和login.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>
然后我通过重命名其中一个来解决