Android错误重复资源

Ric*_*Roy 21 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
Run Code Online (Sandbox Code Playgroud)

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

PS UI是由我的朋友开发的,他是一名UI开发人员,然后他给我邮寄了我现在应该添加代码和功能的项目,因此我很难尝试找出可能出现的错误.

Chu*_*ham 16

这是因为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
Run Code Online (Sandbox Code Playgroud)

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

正常图像:

<ImageView
    android:id="@+id/normalImage"
    android:background="@drawable/login_bg"/>
Run Code Online (Sandbox Code Playgroud)

九贴片图片:

<ImageView
    android:id="@+id/ninePatchImage"
    android:background="@drawable/login_bg"/>
Run Code Online (Sandbox Code Playgroud)

注意:引用/res/drawablesAndroid项目目录中的图像没有区别.

有关九贴片图像的更多信息,请参见此处,或者正确的术语是九贴片可绘制.作为参考,九个补丁drawables 必须声明为<name>.9.png,如login_bg.9.png.


小智 8

从drawable目录中删除图像,因为您在一个文件夹中使用相同的名称,这是不允许的。


小智 7

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

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

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


小智 6

通过转到解决了这个问题

\n

构建 \xe2\x9e\x9e 干净的项目

\n


jon*_*ana 5

在我通过更改初始/默认 ic_launcher 后,
Resource Manager>>Image Asset>>Icon Type>> Launcher Icons
出现此错误。
发生这种情况是因为初始图标仍然存在并且在文件夹内具有相同的名称mipmap

我的解决方案是删除初始启动器图标。
解决方案:将视图更改为“项目”,找到初始图标并将其删除,然后错误应该消失。

如何查找并删除初始图标