2016-04-26 18 views
43

Próbuję dodać najnowszą wersję butterknife i otrzymuję ten błąd z Gradle:Gradle metoda DSL nie znaleziono: '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
  • Gdzie moja Gradle mobilebuild.gradle jest:

    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' 
    } 
    

    Co jest nie tak z oprogramowaniem gradle-apt-plugin?

    +0

    Nie widziałem, że 'składnia plugins' przed, a nie wydaje się być wtyczka 'android-apt'. – CommonsWare

    +0

    To nowy mechanizm wtyczek gradle: https://plugins.gradle.org/plugin/net.ltgt.apt (poszukaj "O nowym mechanizmie wtyczek"). – mFeinstein

    +0

    Skąd czerpię wtyczkę "Android-apt"? ... Przyznaję, że jestem trochę zagubiony, nie wiem zbyt wiele o gradle, właśnie dostałem tę wtyczkę w wyszukiwarce Google dla "gradle apt" – mFeinstein

    Odpowiedz

    100

    Jest całkiem możliwe, że istnieje sposób, aby zadziałał Twój plugins. Biorąc pod uwagę twój błąd, zacznę od śledzenia tego, co używa projekt ButterKnife, spraw, że działa, a następnie sprawdź, czy istnieje przepis na to, co próbujesz.

    pierwsze, your top-level build.gradle file obejmują classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' w buildscriptdependencies, takich jak:

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

    następnie w your module's build.gradle file obejmują apply plugin: 'com.neenbedankt.android-apt' ku górze.

    Linki do odpowiednich plików z repozytorium ButterKnife GitHub, z projektu i dedykowanej przykładowej aplikacji.

    +4

    Dzięki za pomoc! Strona projektu (http://jakewharton.github.io/butterknife/) nie ma tych konfiguracji ..... ale strona github nie robi (https://github.com/JakeWharton/butterknife) i są one prawie taki sam jak twój kod. – mFeinstein

    +2

    Pochodzące z ButterKnife 7.0.1 do 8.0.1 - aktualizacja nie była wcale oczywista. Wszystkie te dodatkowe wpisy w Gradle nie zostały w ogóle dobrze wyjaśnione. Nareszcie działajcie teraz dzięki waszej rady @CommonsWare! –

    +0

    "Zastosuj u góry" zrobił to – m02ph3u5

    5

    Zamiast:

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

    try:

    apply plugin: 'android-apt' 
    
    1

    W moim przypadku pomogło: dodanie do Twojego build.gradle (nie główny, ale jeden projekt):

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

    i

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

    Dodaj swój kod apt do aplikacji build.gradle NOT w głównej wersji build.gradle.

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

    oczywiście musisz dodać następujący kod w swoim głównym build.gradle

    buildscript { 
        repositories { 
         jcenter() 
        } 
    
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.3.2' 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
        } 
    } 
    
    Powiązane problemy