不支持的方法异常 Android Studio 2.2

29

我把我的Android Studio更新到2.2版后,现在当我打开并运行之前的项目时,出现了UnsupportedMethodException错误。

Unsupported method: AndroidProject.getPluginGeneration().
             The version of Gradle you connect to does not support that method.
             To resolve the problem you can change/upgrade the target version of Gradle you connect to.
             Alternatively, you can ignore this exception and read other information from the model

.


你可以在 build.gradle 文件中更正 Gradle 版本。 - mariuss
2
可能是重复的问题,与https://dev59.com/OVkS5IYBdhLWcg3wp4Mh相同。 - brahmy adigopula
5个回答

52

以下是您问题的一些解决方案。禁用 Instant run 应该足够了。

Gradle版本:

前往您的 build.gradle 文件并将 gradle-plugin 版本更改为:

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

即时运行

这是由于 Android Studio 检查即时运行功能的可用性所致。

通过禁用即时运行来解决此问题。步骤如下:

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

取消选择所有项目

使用android-apt插件

使用该插件也可能导致此问题。

在这个例子中,我假设你正在使用Butterknife库...

注意:如果您使用新的Jack编译器版本2.2.0或更高版本,则无需使用'android-apt'插件, 而是在声明编译器依赖项时用annotationProcessor替换apt。

打开您的build.gradle文件并删除:

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

接着进入你的 app/build.gradle 文件并移除以下内容:

apply plugin: 'android-apt'

然后在同一个文件中,替换现有的内容:

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

与之相伴
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

现在应该可以工作了


2
嗨,我找不到“文件”->“设置”->“构建,执行,部署”->“即时运行”。我的Mac上正在使用Android Studio 2.2.2,即时运行不可见。 - Jono
2
在Mac上,打开Android Studio -> 首选项 -> 构建、执行、部署 -> 即时运行,@jonney。 - xaphod
禁用即时运行不会使此错误消失。 - IgorGanapolsky
对我来说,那些解决方案都没有生效。有效的方法是在“app/build.gradle”中使用版本为22.0.0的appcompat-v7和support-v4库,然后单击显示错误时提供的链接,该链接指示导入Google Maven库/项目。 - Marcell

3

您正在尝试导入使用不受您的IDE(Android Studio)支持的版本构建的gradle项目,请先尝试从命令行使用兼容版本重新构建您的项目:

gradle wrapper --gradle-version 3.0

(3.0只是一个示例,请尝试查找您的IDE需要的版本)。

完成此步骤后,导入过程应该没有问题。


2

帮我把Gradle版本升级到更高的版本,当我把它更新到2.10时,它开始正常工作。


1
根据上述内容,进入文件 -> 项目结构,在前两个字段中输入最新的Gradle版本和Android插件版本,然后点击确定,并等待。整个过程可能需要半个小时,但请不断点击蓝色超链接,它们会为您完成操作!

0

通过对以下故障排除的每次修改

您可以通过执行文件->使用Gradle文件同步项目 或者

文件->无效缓存/重启 输入图像描述

我的Android Studio版本 我的Android Studio版本

这是TOP-LEVEL build.gradle(不是YOUR-PROJECT""...\YOUR-PROJECT\build.gradle""的个别文件) 这是TOP-LEVEL build.gradle(不是YOUR-PROJECT

这是我的个人项目 build.gradle 文件 "...\YOUR-PROJECT\app\build.gradle" 这是我的个人项目 build.gradle 文件

这是我的 "...\YOUR-PROJECT\gradle\wrapper\gradle-wrapper.properties" 文件 gradle-wrapper 文件

这是错误信息 这是错误信息

根据上面的答案 "Brian Fleming" 根据上面的答案 "Brian Fleming"

浏览一下,你应该能看到顶层gradle文件和gradle-wrapper文件之间的关系 浏览一下,你应该能看到gradle文件之间的关系

注意

  • ...\YOUR-PROJECT\gradle\wrapper\graddle-wrapper.properties 文件和
  • ......\YOUR-PROJECT\build.gradle 文件
  • 将通过使用Android Studio GUI中的File->Project Structure进行编辑

似乎在“app\build.gradle”中,这是个人gradle文件 这是我发现的警告

它说:“依赖项:com.android.support:appcompat-v7:25.2.0:找到过时的依赖项配置:编译[将编译更新为实现]”

逐个检查每个警告并单击“[更新编译...(蓝色)]”,这将把每个“compile”更新为“implementation”

您也可以在记事本中编辑文件,但我选择在GUI中进行操作 逐个检查每个警告**

与Gradle文件同步项目 与Gradle文件同步项目

接下来你会得到这个错误.... “Gradle - Error Could not find method implementation() for arguments…”

  • 这是因为在我的情况下,我正在使用的项目是旧的,而且在顶级 YOUR-PROJECT/build.gradle 中有 gradle 2.0.0 版本。

  • 而 "...\YOUR-PROJECT\gradle\wrapper\gradle-wrapper.properties" 中则为 2.10 版本。

  • 此外,个别的 "... \YOUR-PROJECT\app\build.gradle" 中使用了已废弃的 "compile",而不是目前使用的 "implementation"。

  • 因此,当我替换为当前的 "implementation" 后,需要同时更新 gradle TOP-LEVEL 和 gradle-wrapper.properties 文件的版本。

  • 我将它们更新到了 TOP-LEVEL 的 3.1.4 和 gradle-wrapper.properties 的 4.4 版本。

请看这里UPDATING THE GRADLE FILES

你还可能会遇到以下错误,比如 "无法在 jcenter 中找到文件"。

  • 有三个不同的代码库,您的构建或 gradle 会从中获取内容,它们是 jcenter()、google()和 mavenCentral()。要获取更多信息,请单击此处:https://docs.gradle.org/current/userguide/declaring_repositories.html

  • 在我的情况下,如果您检查我的 TOP LEVEL grade 文件,该项目仅包含 jcenter(),因此我只需将 google()添加到代码库中即可。

在这里 Adding google repository

我只在“buildscript”中添加了它,而没有在“allprojects”中添加。我真的不知道在您的情况下是否不同。但这对我有用(我只采取小步骤,如果没有更多变化就不会有进展)

这可能不适用于您,但如果出现以下错误,请检查以下内容。

SDK工具版本过旧错误 这个错误是由于我有新的gradle文件,但是INDIVIDUAL gradle文件YOUR-PROJECT/app/build.gradle中的buildToolVersion低于支持这些新gradle文件的最低版本。错误本身告诉你将其更改为“27.03”(请执行)

你可以选择通过File->Sync Project with Gradle Files进行同步 或者 File-> INVALIDATE CACHES/RESTART(这是我在整个故障排除过程中一直使用的方法)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接