我将我的android工作室更新为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
答案 0 :(得分:51)
以下是您的问题的一些解决方案。禁用Instant run
应该足够了
转到您的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'
插件,而是可以 在声明编译器时将apt替换为annotationProcessor
依赖性。
转到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'
它应该现在可以使用
答案 1 :(得分:2)
将Gradle版本更新为更高版本,当我将其更新为 2.10
时,它开始工作答案 2 :(得分:2)
您正在尝试导入使用您的ide(Android Studio)中未支持的版本构建的gradle项目,尝试首先使用兼容版本从命令行重建您的项目:
gradle wrapper --gradle-version 3.0
(3.0只是一个例子,试着找出你的IDE需要什么版本。)
在此步骤之后,导入过程应该没问题
答案 3 :(得分:1)
按照上述操作,转到“文件”->“项目结构”,在前两个字段中,我输入了最新的Gradle版本和Android插件版本,然后单击“确定”,然后等待。整个过程可能需要半小时,但请继续单击蓝色超链接,它们将为您完成!
答案 4 :(得分:0)
通过此故障排除的每次修改(请参见下文)
您可以通过使用Gradle文件执行File-> Sync Project来同步 或
这是TOP-LEVEL build.gradle(不是您的项目的个人名称“” ... \ YOUR-PROJECT \ build.gradle“”
这是我的个人项目build.gradle“ ... \ YOUR-PROJECT \ app \ build.gradle”
这是我的“ ... \ YOUR-PROJECT \ gradle \ wrapper \ gradle-wrapper.properties”文件
浏览您应该会看到与TOP LEVEL gradle文件和gradle-wrapper文件之间的关系
注意
它似乎在“ gradle”个人文件“ app \ build.gradle”中
上面写着“ 依赖项:com.android.support:appcompat-v7:25.2.0:发现过时的依赖项配置:compile [更新编译为实现]”
请仔细阅读每个警告,然后单击**“ [更新编译...为蓝色]”,这会将每个“编译”更新为“实现”
您也可以在记事本上编辑文件本身,我选择在GUI中进行操作 **
接下来的一件事,您知道会收到此错误。 “ Gradle-错误找不到参数的方法实现()...”
这是因为在我的情况下,我正在处理的项目很旧,并且在TOP LEVEL中具有gradle 2.0.0 YOUR-PROJECT / build.gradle
“ 2.10”用于“ ... \ YOUR-PROJECT \ gradle \ wrapper \ gradle-wrapper.properties”
个人“ ... \ YOUR-PROJECT \ app \ build.gradle”也已弃用“ compile”,而不是当前使用的“ implementation”
因此,当我替换当前的“实现”时,gradle的TOP-LEVEL和gradle-wrapper.properties文件的gradle版本也需要更新。
我将它们更新为TOP-LEVEL到3.1.4,并将gradle-wrapper.properties更新为4.4
您可能还会收到此错误 “在jcenter中找不到文件”行中的内容
您的构建或gradle可以从jcenter(),google()和mavenCentral()获得3个不同的存储库,以获取更多信息:https://docs.gradle.org/current/userguide/declaring_repositories.html
就我而言,如果您检查我的TOP LEVEL等级文件,则该项目只有jcenter(),因此我只是在存储库中添加了google()
我只在“ buildscript”中添加了它,没有在“ allprojects”中添加了我,我真的不知道您的情况是否不同。但这对我有用(我只是迈出了小步,如果不能再做更多的改变)
这可能不适用于您,但请在下面检查是否出现此错误
产生此错误的原因是,我的新gradle文件 YOUR-PROJECT / app / build.gradle 中有新的成绩文件但我的buildToolVersion低于这些新成绩的最低支持。文件。错误本身告诉您将其更改为“ 27.03”(执行操作)
您可以通过使用Gradle文件执行File-> Sync Project来同步 要么 File-> INVALIDATE CACHES / RESTART(这是我在整个故障排除过程中一直使用的)