Android 未找到Gradle DSL方法:';apt()';

Android 未找到Gradle DSL方法:';apt()';,android,gradle,butterknife,Android,Gradle,Butterknife,我正在尝试添加butterknife的最新版本,我从gradle那里得到了以下错误: 错误:(31,0)找不到Gradle DSL方法:“apt()”可能是 原因:项目“MyProject”可能正在使用 不包含该方法的渐变。渐变设置生成文件 可能缺少Gradle插件。申请 Gradle插件 其中我的gradlemobilebuild.gradle是: plugins { id "net.ltgt.apt" version "0.6" } apply plugin: 'com.andro

我正在尝试添加butterknife的最新版本,我从gradle那里得到了以下错误:

错误:(31,0)找不到Gradle DSL方法:“apt()”可能是 原因:
  • 项目“MyProject”可能正在使用 不包含该方法的渐变。渐变设置
  • 生成文件 可能缺少Gradle插件。申请 Gradle插件
  • 其中我的gradle
    mobile
    build.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插件出了什么问题?

    完全有可能有办法让您的
    插件
    正常工作。考虑到你的错误,我会从ButterKnife项目使用的东西开始,让它工作起来,然后看看你尝试的东西是否有配方

    首先,在中,将
    classpath'com.neenbedankt.gradle.plugins:android apt:1.8'
    包含在
    buildscript
    依赖项中,例如:

      buildscript {
        repositories {
          mavenCentral()
        }
        dependencies {
          classpath 'com.android.tools.build:gradle:2.0.0'
          classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        }
      }
    
    然后,在中,将
    apply插件:“com.neenbedankt.android apt”
    放在顶部

    这些链接指向ButterKnife GitHub repo、项目和专用示例应用程序中的相关文件。

    而不是:

        plugins {id "net.ltgt.apt" version "0.6"}
    
    尝试:

    就我而言: 添加到您的
    build.gradle
    (不是main,而是projectone):

    应用插件:“com.neenbedankt.android apt”


    apt已过时,请将apt更改为新格式:

    改变

    apt 'com.jakewharton:butterknife-compiler:8.5.1'
    


    将apt代码添加到apps build.gradle中,而不是主build.gradle中

    dependencies {
        apt group: 'group name here', name: 'artifact name here', version:'version here'
    }
    
    当然,您必须在main build.gradle中添加以下代码

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

    我以前没有见过
    插件
    语法,而且这似乎不是
    安卓apt
    插件。这是gradle插件的新理念:(寻找“关于新插件机制”)。我从哪里得到
    安卓apt
    插件?…我承认我在这里有点迷路,我对gradle不太了解,我刚刚在谷歌搜索“gradle apt”时得到了这个插件,谢谢你的帮助!项目的页面()缺少这些配置……但是github页面没有(),它们与您的代码几乎相同。从ButterKnife 7.0.1到8.0.1-升级一点也不明显。所有这些额外的年级项目都没有得到很好的解释。多亏了您的建议,@commonware,现在终于可以让它工作了<代码>应用在顶部
    这是针对Android Gradle插件>=2.2,如果<2.2,请使用公认的答案
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
    
    dependencies {
        apt group: 'group name here', name: 'artifact name here', version:'version here'
    }
    
    buildscript {
        repositories {
            jcenter()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.2'
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        }
    }