Android-Studio从0.1.9升级到0.2.0后导致gradle构建错误

33

我的当前项目一直使用Gradle构建成功,自从我一个月前获取Android Studio以来一直如此。 [我之前安装了一些Android Studio的更新版本,并没有遇到问题。]

但是,今天,在我将Android Studio更新到最新版本0.2.0(7月11日版本),从版本0.1.9升级后, 我的项目开始抱怨Gradle现在需要至少0.5.0版本。(我的项目要求使用Gradle 0.4版本,而这个新 的Studio升级检测到我的Gradle构建,并指出它现在需要更高的Gradle最低版本)。

所以,我不确定的是:我一直认为Gradle是Android Studio的一部分(捆绑在一起的)。

那么,我现在需要获取一个新的Gradle,作为一个单独的产品/更新吗?

我困惑了!!!

编辑:(这发生在Windows-7下)。

7个回答

85

不需要重新安装或创建新项目的解决方案:

步骤1:build.gradle 中更改以下行:

dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
}
注意:对于较新版本的Gradle,您可能需要将其更改为0.6.+
第二步:在<YourProject>.iml文件中,删除整个<component name="FacetManager">[...]</component>标记。
第三步(可能不必要):在Android SDK管理器中,安装(如果尚未安装)Extras下的Android Support Repository
信息在此处找到

3
现在只需要第一步(版本0.2.9)。 - hBrent
在Android Studio 0.2.11中,(a) build.gradle文件中没有dependencies...块,(b) 我项目的.iml文件中没有FacetManager组件,(c) 我已经安装了Android Support Repository...感到困惑。 - Spencer Williams
1
更新到0.4.2版本时,只需要执行步骤1并更改gradle-wrapper.properties文件(更改为1.9)即可。 - Tim Scarborough
我想知道为什么每个人都称它为Gradle,它不是Android Studio的插件吗,而不是Gradle本身...如果我错了,请纠正我。我该如何知道哪个版本的Gradle或Android Gradle插件与哪个版本的Android Studio一起使用?谢谢。 - Tanvir
1
如果您没有要升级的版本的.jar和.pom文件,则第一步将无法正常工作。 - portfoliobuilder
显示剩余2条评论

3

基本上,如果你遵循这个链接中关于版本0.2的问题,你很可能会解决自己的问题。我在使用0.2版本时也遇到了同样的问题。


2
Gradle应该已经更新了,你只需要让你之前的项目知道gradle已经被更新。请编辑你的build.gradle文件,并显示以下内容: 来源
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}

这仅适用于使用旧版本Android Studio创建的项目。您创建的新项目将默认具有此功能。


是的,那也是我的理解。然而,当我这样做时,在构建的尝试中现在出现了错误。 - David
1
具体来说:Gradle: 失败:无法确定要执行哪些任务。
  • 出了什么问题: 在根项目'Slims_SchedProject'中找不到任务'assemble'。
  • 尝试: 运行gradle tasks以获取可用任务列表。
- David
甚至更糟的是,当我尝试创建一个新项目时,现在出现了以下错误信息:导入Gradle项目失败:无法使用Gradle分发获取'IdeaProject'类型的模型。 - David
你卸载了之前的Android Studio吗?在故障排除步骤中指出,覆盖安装可能会导致一些问题。 - daniel_c05

2

好的,我最终解决了这个问题,通过完全卸载Android Studio,然后从头安装最新版本(0.2.0)。

编辑:我还必须使用Android SDK管理器,并安装Extras部分中称为Android Support Repository的组件(如其他地方所述)。

注意:这并没有修复我的旧项目...如上所述,它仍然无法构建。

但是,它确实解决了现在至少能够创建新项目的问题,这些新项目使用“Gradle”正常构建。(因此,基本上,我在新名称下从头重新创建了我的proj,并将所有代码和项目xml文件等从旧项目复制到了新创建的项目中。)

[作为旁注:我有一个想法,Google!为什么不使用像0.1.9和0.2.0这样的数字引用Android Studio的版本,但是当用户点击“关于”菜单项或在其他地方搜索他们正在运行的版本时,您可以用“7月11日构建”之类的垃圾来困扰他们,或者另一个带有6或8位数字编号的构建号,使他们想知道他们实际拥有的版本!那将让开发人员猜测...真的会从谷物中分离出来,等等。]

例如,我最初安装了一个名为:android-studio-bundle-130.687321-windows.exe的套件。

今天,我得到了“0.2.0”套件???,它的名称类似于:android-studio-bundle-130.737825-windows.exe

是的,这个版本号系统就像泥一样不清晰。
当你不使用它们时,为什么要有版本号的幻觉!!!?


1
现在您可以使用最后的1.0.0-rc1版本,方法如下:

classpath 'com.android.tools.build:gradle:1.0.0-rc1'

需要使用Gradle 2.0,如果你没有它,Android Studio会要求你下载它。

1
如果你遇到这个错误
Gradle: 
FAILURE: Could not determine which tasks to execute.
* What went wrong:
Task 'assemble' not found in root project 'MyProject'.
* Try:
Run gradle tasks to get a list of available tasks.

你需要编辑项目的.iml文件,而不是src下的文件。找到名为myappProject.iml的文件,删除整个组件名称为facetmanager。
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
...remove this element and everything inside such as <facet> elements...
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
...keep this part...
</component

1

对于今天遇到这个问题的人(例如从2.8.0切换到2.10.0),请移动到gradle-wrapper.properties文件并设置distributionUrl的值。

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

我将2.8.0更改为2.10.0,不要忘记同步。


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