2016-04-26 22 views
43

Sto cercando di aggiungere l'ultima versione di butterknife e ottengo questo errore da Gradle:Gradle metodo DSL non trovato: 'apt()'

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
  • Dove il mio 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' 
    } 
    

    Cosa c'è di sbagliato con il gradle-apt-plugin?

    +0

    non ho visto che 'la sintassi plugins' prima, e che non sembra essere il plugin 'android-apt'. – CommonsWare

    +0

    Questo è il nuovo mecanismo dei plugin gradle: https://plugins.gradle.org/plugin/net.ltgt.apt (cerca "Informazioni sul nuovo meccanismo di estensione"). – mFeinstein

    +0

    Dove trovo il plugin 'android-apt'? ... Confesso che sono un po 'perso qui, non ne so molto di gradle, ho appena ottenuto questo plugin in una ricerca su google per" gradle apt " – mFeinstein

    risposta

    100

    È del tutto possibile che vi sia un modo per far funzionare il vostro plugins. Dato il tuo errore, inizierei seguendo ciò che il progetto ButterKnife utilizza, farlo funzionare, quindi vedere se c'è una ricetta per quello che stai provando.

    primo luogo, in your top-level build.gradle file, includere classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' nel buildscriptdependencies, come ad esempio:

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

    Poi, in your module's build.gradle file, includono apply plugin: 'com.neenbedankt.android-apt' verso l'alto.

    I collegamenti sono relativi ai file pertinenti dal repository ButterKnife GitHub, dal progetto e dall'app campione dedicata.

    +4

    Grazie per l'aiuto! La pagina del progetto (http://jakewharton.github.io/butterknife/) ha queste configurazioni mancanti ... ma la pagina github non lo fa (https://github.com/JakeWharton/butterknife) e sono praticamente le come il tuo codice. – mFeinstein

    +2

    Proveniente da ButterKnife 7.0.1 alla 8.0.1 - l'aggiornamento non era affatto ovvio. Tutte queste voci extra di Gradle non sono state spiegate molto bene. Finalmente funziona ora grazie al tuo consiglio, @CommonsWare! –

    +0

    'applica in alto' lo ha fatto – m02ph3u5

    5

    Invece di:

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

    prova:

    apply plugin: 'android-apt' 
    
    1

    Nel mio caso ha aiutato: aggiungere al vostro build.gradle (non principale, ma il progetto uno):

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

    e

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

    Aggiungi il tuo codice apt nelle app build.gradle NON in build.gradle principale.

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

    Naturalmente, si dovrà aggiungere il seguente codice nel tuo build.gradle principale

    buildscript { 
        repositories { 
         jcenter() 
        } 
    
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.3.2' 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
        } 
    } 
    
    Problemi correlati