android - 使用 gradle 包含 butterknife 时重复文件

标签 android gradle android-gradle-plugin butterknife

我有一个使用 Android Studio 创建的基本 Android 应用,但在我的构建中添加 butterknife 时遇到问题。我收到此错误:

Error:: duplicate files during packaging of APK C:\apps\orion\app\build\apk\app-debug-unaligned.apk
Error:Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK META-INF/services/javax.annotation.processing.Processor
    File 1: C:\Users\andres\.gradle\caches\modules-2\files-2.1\com.jakewharton\butterknife\4.0.1\f43b36925363701633d01adb8e54df7150397a78\butterknife-4.0.1.jar
    File 2: C:\Users\andres\.gradle\caches\modules-2\files-2.1\com.jakewharton\butterknife\4.0.1\f43b36925363701633d01adb8e54df7150397a78\butterknife-4.0.1.jar

我的依赖项如下所示:

dependencies {

    compile 'com.android.support:support-v4:+'
    compile 'com.squareup.dagger:dagger-compiler:1.2.1'
    compile 'com.squareup.dagger:dagger:1.2.1'
    compile 'com.jakewharton:butterknife:4.0.1'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile 'com.android.support:appcompat-v7:+'
    compile project(':lib')
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

最佳答案

更高版本的插件会告诉你如何解决这个问题。我认为我们在 0.8 中引入了修复,因此您可能应该升级。然后解决方法是将其放入您的 build.gradle

android {
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
}

这将从包装中排除此文件,这很好,因为 APK 中实际上不需要它。

关于android - 使用 gradle 包含 butterknife 时重复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439156/

相关文章:

android - 升级到 Gradle 2.3 后数据绑定(bind)中断

android - 如何从 Crashlytics 迁移到 Firebase Crashlyics(Firebase 项目不在列表中)

android - 如何使用 Camera2 API android 提高捕获的图像分辨率?

android - 具有不同单元格类型的 ListView?

android - NoClassDefFoundError:com.exacttarget.etpushsdk.ETLocationManager $ RegionMonitor

typescript - 同步gradle后IntelliJ WAR Artifact缺少文件夹

android - 试图将模块添加到项目中。 Gradle DSL 方法未找到 : 'versionName()'

android - 错误 : MainActivity must extend android. app.Activity [可实例化]

android - 无法使用 Android Studio 创建新的 Android 项目

Android Studio Gradle DSL 方法未找到 : 'android()' -- Error(17, 0)