Android Studio:错误代码1:Gradle:执行任务“:app:processDebugResources”失败

14

我想编译一个项目,但出现了Error:Gradle: Execution failed for task ':app:processDebugResources'.

以下是异常信息:

Error:Gradle: Execution failed for task ':app:processDebugResources'. com.android.ide.common.internal.LoggedErrorException: Failed to run command:

D:\devtools\adt\sdk\build-tools\21.1.1\aapt.exe package -f --no-crunch -I D:\devtools\adt\sdk\platforms\android-21\android.jar -M E:\code\android\TVMediaPlayer\app\build\manifests\debug\AndroidManifest.xml -S E:\code\android\TVMediaPlayer\app\build\res\all\debug -A E:\code\android\TVMediaPlayer\app\build\assets\debug -m -J E:\code\android\TVMediaPlayer\app\build\source\r\debug -F E:\code\android\TVMediaPlayer\app\build\libs\app-debug.ap_ --debug-mode --custom-package com.skyworth.tvmediaplayer.app --output-text-symbols E:\code\android\TVMediaPlayer\app\build\symbols\debug

Error Code: 1

Output: E:\code\android\TVMediaPlayer\app\build\res\all\debug\drawable-hdpi-v4\ic_launcher.png: error: Duplicate file. E:\code\android\TVMediaPlayer\app\build\res\all\debug\drawable-hdpi\ic_launcher.png: Original is here. The version qualifier may be implied.

以下是gradle文件:

    android {
        compileSdkVersion 21
        buildToolsVersion "21.0.2"

        defaultConfig {
            applicationId "com.jerrellmardis.amphitheatre"
            minSdkVersion 21
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
            renderscriptTargetApi 19

            buildConfigField "String", "TMDB_API_KEY", "\"${loadSecret("TMDB_API_KEY")}\""
        }
......
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:recyclerview-v7:21.0.0'
    compile 'com.android.support:leanback-v17:21.0.0'
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.android.support:palette-v7:21.0.0'
    compile 'com.squareup.picasso:picasso:2.3.4'
    compile 'com.squareup.retrofit:retrofit:1.7.1'
    compile 'com.google.code.gson:gson:2.3'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'org.apache.commons:commons-collections4:4.0'
    compile 'com.jakewharton:butterknife:6.0.0'
    compile 'com.github.satyan:sugar:1.3'
}

我对这个错误信息感到困惑,是我放错了png文件还是我的gradle配置文件有问题?


1
尝试更改为drawable-hdpi\ic_launcher.png: - Sasha
1
错误1基本上告诉你有一个重复的文件...将其重命名或删除。 - Kostas Drak
4
@Sultan,非常感谢。我也找到了问题所在。是因为我在一个jar文件中有重复的文件"ic_launcher.png"。 - roger
1
@KostasMatrix 非常感谢。我也找到了问题所在。原因是我在一个jar文件中有重复的文件“ic_launcher.png”。 - roger
4个回答

13

在使用第三方库时,我遇到了同样的问题。

为了解决它,我将我的ic_launcher.png文件从drawable文件夹移动到mipmap文件夹。问题解决了。

输入图片说明


很奇怪,这对我也解决了问题,但我仍然想知道为什么会发生这种情况... - martyglaubitz

4
  • 如果您管理自己的aar文件:

您需要确保您的gradle和buildToolsVersion在项目和使用的aars中是相同的。

  • 如果您使用无法控制gradle/build版本的外部库:

联系作者或自行检查源代码。一些库可能有未使用的启动器图标,这将导致冲突。删除这些图标将解决您的问题。同名的源代码(例如menu.xml)在某些情况下也可能导致此问题。一个简单的解决方法是重命名您的资源。


+1 用于重命名资源。不幸的是,如果多个第三方库有自己的ic_launcher,则无法正常工作。最终我不得不手动导入其中一些库,并删除我的项目中的ic_launcher,这是不幸的,但是不可避免的。 - kha
重命名资源解决了我的问题。 - mr.icetea

0
在app.gradle中添加aaptOptions.cruncherEnabled = false解决了我的问题。

1
你好。请在你的回答中加入更多信息,例如这个问题背后的原因。 - V.J.

0
如果有其他人遇到了这个问题,而且之前提到的答案都没有解决你的问题,那么你可以在应用程序标签中的AndroidManifest.xml文件中添加以下行:

tools:replace="android:icon

同时,在你的清单标签中也需要添加工具命名空间。

xmlns:tools="http://schemas.android.com/tools"

那么它将会看起来像这样:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      package="com.example.sqlite" >`

   <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        tools:replace="android:icon"
        android:icon="@mipmap/ic_launcher"
        android:name="com.orm.SugarApp">

我也有依赖于com.github.satyan:sugar:1.3,我相信该库在其自己的清单文件中导入了另一个图标,从而引起了冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接