簡體   English   中英

Gradle,Android Studio和Butterknife的編譯錯誤

[英]Compilation errors with Gradle, Android Studio and Butterknife

我已將Eclipse Android項目導入Android Studio,但編譯失敗,並出現以下錯誤:

Error:(7, 8) error: duplicate class: com.company.fragment.PrimaryFragment$$ViewInjector

我嘗試添加apt插件:

   apply plugin: 'android'
    apply plugin: 'apt'

    android {
        compileSdkVersion 19
        buildToolsVersion "20.0.0"

        defaultConfig {

            minSdkVersion 15
            targetSdkVersion 19
        }

        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }

        lintOptions {
            disable 'InvalidPackage'
        }

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


dependencies {
    compile project(':library')
    compile 'com.android.support:support-v4:+'
    apt "com.jakewharton:butterknife:5.1.1"
    compile 'com.jakewharton:butterknife:5.1.1'

}

我認為這與Butterknife有關 但是當我用它進行一個干凈的項目時,一切都很好。

如果您的構建目錄中仍然有eclipse的target / build文件夾,則最好刪除它們。

另外,在項目->清理下清理項目可能會有所幫助。

另外,如果您從命令行運行Maven或Gradle,則明智的做法是:

maven clean

要么

gradle clean

您不需要aptcompile依賴關系,只需要compile依賴關系。

通過兩次,注釋處理器將運行兩次(具有兩個不同的輸出目錄),這意味着生成的類將創建兩次。 您看到的錯誤是因為為PrimaryFragment生成了兩個相同的類。

只有將運行時與注釋處理器(有時稱為編譯器)分開的庫才需要apt范圍(和插件)。 一個例子就是帶有daggerdagger-compiler Dagger。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM