课程重命名

时间:2016-09-07 14:05:11

标签: android testing gradle android-gradle

我们已设置Gradle来构建和测试我们的Android应用。现在我们遇到了这个问题,在项目的某个地方重命名一个类后, Gradle测试运行失败可重现:

Execution failed for task ':PROJ:compileDebugUnitTestJavaWithJavac'.
> Unable to read class file: '/path/to/class/with/the/name/before/renaming.class'

这个错误可以重现......

  • 本地(从Android Studio运行gradle测试,或使用./gradlew test在命令行上运行)和
  • 远程,当测试在我们的CI(Teamcity服务器)上运行时。

解决问题,是在本地手动触发重建(例如在Android Studio Build>重建项目中)或使用标志{重新运行Teamcity任务{1}}设置。

在重命名课程后,我们有什么方法可以让我们的考试不失败?

虽然上面的解决方案很简单,但有点令人讨厌的是,一个简单的重命名会使它成为我们的回购将会破坏CI构建...我们真的希望那些保持绿色。 :)

2 个答案:

答案 0 :(得分:1)

您可以使用TC的Swabra构建功能在每次构建之前或之后清除工作目录,这样所有生成的文件都会被清除,构建始终以干净的工作副本开始。对于可重复的构建,我认为这是一个必须使用的功能。

或者,您当然也可以将clean Gradle任务添加到TC配置中,以便Gradle清除以前的构建工件。但是如果使用TC,我更喜欢Swabra,因为它可靠地恢复VCS状态。

答案 1 :(得分:1)

这是Gradle 2.14和2.14.1中的known issue,在即将推出的Android Gradle插件版本中将有一个解决方法。

作为一种解决方法,您可以为项目执行干净的构建。对于CI构建,干净的构建无论如何都是个好主意。

相关问题