[英]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
您不需要apt
和compile
依賴關系,只需要compile
依賴關系。
通過兩次,注釋處理器將運行兩次(具有兩個不同的輸出目錄),這意味着生成的類將創建兩次。 您看到的錯誤是因為為PrimaryFragment
生成了兩個相同的類。
只有將運行時與注釋處理器(有時稱為編譯器)分開的庫才需要apt
范圍(和插件)。 一個例子就是帶有dagger
和dagger-compiler
Dagger。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.