不支持的方法:运行项目时,AndroidProject.getPluginGeneration()


105

我正在尝试使用Android Studio 2.2运行我的项目,但出现此错误

Unsupported method: AndroidProject.getPluginGeneration().
The version of Gradle you connect to does not support that method.

我正在使用ButterKnife 8.4.0

我的应用程式gradle.file:

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

我的模块gradle文件:

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

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "xxx.xx"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
}

dependencies {
    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

为什么它不起作用,我该如何解决?


@Tim Castelijns,如果您应用当前答案中的解决方案会怎样?
azizbekian

@azizbekian有什么关系
Tim

Answers:


281

一般问题:

由于AS正在检查即时运行功能的可用性,因此可能发生这种情况。解决方法是禁用即时运行:

Windows和Linux:

File -> Settings -> Build, Execution, Deployment -> Instant Run.

苹果电脑:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run.

在此处输入图片说明

感谢@pophus提到了这一点。

如果您使用的是黄油刀,请执行以下步骤:-

如果您使用的新Jack编译器具有2.2.0或更高版本,则不需要'android-apt'插件,而是在声明编译器依赖项时将apt替换为注解处理器。

即删除

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

从您的主要gradle文件

并删除

apply plugin: 'android-apt'

从您的主模块文件

并替换

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

annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

我想热爱即时跑步,但是它会以奇怪的方式破坏事物,以至于没有足够的时间投入就无法定期使用
Sirens

24

我在Android Studio 2.2中遇到此错误,在我的情况下,这是由AS检查即时运行功能的可用性引起的。我通过禁用即时运行修复了该问题:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run


为我的同事工作。他在摇篮中1.2.3
gitter

1
你救了我的命。我正在开发一个即将发布的项目,因此不想升级gradle。此修复程序/解决方法绝对有帮助。
Better Shao

@pophus可能由于不同的原因而发生,也许即时运行是一个原因,我遇到了黄油刀问题
ColdFusion

7

将gradle版本更改为2.2

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

抱歉,这是一个错字,我实际上是使用2.2.0
ColdFusion

然后尝试删除.idea文件夹并重新启动ide。在将项目更新为2.2之后,我也遇到了不同的问题。我发现的一种解决方案是删除.idea文件夹。现在一切正常。
Sayem

6

在Windows上是

File / Settings/ Build, Execution, Deployment / Instant Run.

取消选中 Enable Instant Run to hot swap code...


1
您的答案没有添加任何新内容,其他答案中已有说明,您可以澄清吗?
ColdFusion

1
我花了一些时间在Windows上找到此选项,所以这次我想为其他人保存。就是
这么

2

刚刚 关闭即时运行

Windows 文件-设置-生成,执行,部署-即时运行。

MAC Android Studio->首选项->构建,执行,部署->即时运行。


3
您的答案没有添加任何新内容,其他答案中已有说明,您可以澄清吗?
ColdFusion

2

我在一个非常老的项目中遇到了同样的错误。由于Android Studio 3.5不再具有“即时运行”选项,因此我需要其他解决方案。

原来,我不得不在“项目设置”中手动更改gradle版本。我使用了“新项目”将自动使用的版本,因为下拉列表为空。

就我而言,它是插件版本3.5.1和Gradle版本5.4.1。

之后,我开始了“构建-清洁项目”,结果一切正常。


1

只需将Gradle插件版本升级到最新版本:

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

并确保您的Gradle也是最后一个v:

#Sun Nov 03 16:47:32 IRST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

注意:也可以google在存储库中使用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.