2016-04-26 96 views
43

我想補充的最新版本butterknife的,我從gradle這個得到這個錯誤:搖籃DSL找不到方法: '易()'

Error:(31, 0) Gradle DSL method not found: 'apt()' Possible causes:

  • The project 'MyProject' may be using a version of Gradle that does not contain the method. Gradle settings
  • The build file may be missing a Gradle plugin. Apply Gradle plugin
  • 凡我gradle這個mobilebuild.gradle是:

    plugins { 
        id "net.ltgt.apt" version "0.6" 
    } 
    
    apply plugin: 'com.android.application' 
    
    android { 
        compileSdkVersion 23 
        buildToolsVersion "23.0.2" 
    
        defaultConfig { 
         applicationId "com.mynamspace.myproject" 
         minSdkVersion 19 
         targetSdkVersion 23 
         versionCode 1 
         versionName "1.0" 
        } 
        buildTypes { 
         release { 
          minifyEnabled false 
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
         } 
        } 
    } 
    
    dependencies { 
        compile fileTree(dir: 'libs', include: ['*.jar']) 
        wearApp project(':wear') 
        testCompile 'junit:junit:4.12' 
        compile 'com.jakewharton:butterknife:8.0.0' 
        apt 'com.jakewharton:butterknife-compiler:8.0.0' 
        compile 'com.android.support:appcompat-v7:23.3.0' 
        compile 'com.google.android.gms:play-services:8.4.0' 
        compile 'com.android.support:design:23.3.0' 
        compile 'com.android.support:support-v4:23.3.0' 
        compile 'com.android.support:recyclerview-v7:23.3.0' 
    } 
    

    gradle-apt-plugin有什麼問題?

    +0

    我還沒有看到'之前plugins'語法,並且不顯得'android-apt'插件。 – CommonsWare

    +0

    這就是gradle插件的新機制:https://plugins.gradle.org/plugin/net.ltgt.apt(查找「關於新的插件機制」)。 – mFeinstein

    +0

    我在哪裏可以得到'android-apt'插件?...我承認我有點迷路了,我對gradle不太瞭解,我剛剛在谷歌搜索插件中找到了「gradle apt」 – mFeinstein

    回答

    100

    完全可能的是,有一種方法可以讓您的plugins正常工作。鑑於你的錯誤,我會首先關注ButterKnife項目的使用情況,讓它發揮作用,然後看看是否有你正在嘗試的食譜。

    首先,在your top-level build.gradle file,包括在buildscriptdependenciesclasspath 'com.neenbedankt.gradle.plugins:android-apt:1.8',如:

    buildscript { 
        repositories { 
         mavenCentral() 
        } 
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.0.0' 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
        } 
        } 
    

    然後,在your module's build.gradle file,包括apply plugin: 'com.neenbedankt.android-apt'朝向頂部。

    鏈接來自ButterKnife GitHub倉庫的相關文件,來自項目和專用示例應用程序。

    +4

    謝謝尋求幫助!該項目的頁面(http://jakewharton.github.io/butterknife/)缺少這些配置.....但github頁面並不(https://github.com/JakeWharton/butterknife),它們幾乎是與您的代碼相同。 – mFeinstein

    +2

    從ButterKnife 7.0.1到8.0.1--升級並不明顯。所有這些額外的Gradle條目都沒有得到很好的解釋。最後讓它工作,感謝您的建議@CommonsWare! –

    +0

    '應用於頂部'做到了 – m02ph3u5

    5

    相反的:

    plugins {id "net.ltgt.apt" version "0.6"} 
    

    嘗試:

    apply plugin: 'android-apt' 
    
    1

    在我的情況下幫助: 添加到您的build.gradle(不是主力,但項目一期):

    apply plugin: 'com.neenbedankt.android-apt'

    buildscript { 
        repositories { 
         jcenter() 
        } 
    
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.1.0' 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7' 
        } 
    } 
    
    0

    將您的apt代碼添加到主Build.gradle中的應用程序build.gradle NOT

    dependencies { 
        apt group: 'group name here', name: 'artifact name here', version:'version here' 
    } 
    

    當然,你必須在你的主要的build.gradle中添加以下代碼

    buildscript { 
        repositories { 
         jcenter() 
        } 
    
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.3.2' 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
        } 
    } 
    
    相關問題