Android Studio 3.1中的单元测试配置已崩溃

时间:2018-03-29 11:10:53

标签: android android-studio gradle junit android-gradle

我更新到Android Studio 3.1并按照Android Studio的建议:

  • 从2.3.0更新Android gradle插件到3.1.0(也尝试了新的3.1.1,问题仍然存在)
  • 将buildToolsVersion更新为27.0.3
  • 使用SDK管理器下载Android 8.1 API 27。

我使用的是JDK 8.

我之前在一个模块中运行所有测试的Android Studio构建配置“核心测试”现在说:

  

无法使用Gradle分发“https://services.gradle.org/distributions/gradle-4.5.1-all.zip”执行构建。

我的设置: enter image description here

ide中显示的确切异常: enter image description here

我的完整源代码: https://github.com/Leejjon/BluffPoker

当在命令行上运行时,显然会出现相同的Nullpointer:gradle :core:test此命令将失败并使用相同的NullPointer。对像gradle test这样的根项目进行测试可以正常运行。我也可以在Android手机上部署应用程序。这可能与IntelliJ无关,但Android gradle插件3.1.0破坏了运行gradle :core:test命令的能力。

TLDR:在核心模块中运行任何gradle任务,如gradle :core:sometask似乎导致自Android gradle插件3.1.0以来的空指针。

我现在的解决方法是使用gradle test命令在所有模块中运行所有测试,并通过junit研究生成的html页面(可在BluffPoker \ core \ build \ reports \ tests \ test \ index.html中找到) )解决他们是否失败的问题。

3 个答案:

答案 0 :(得分:3)

正如这个bug评论者指出: https://issuetracker.google.com/issues/77605097#comment7

禁用Gradle的“按需配置”功能(在“设置:构建,执行和部署:编译器”中)是一种可行的解决方法。

自从我这样做以来,我的单元测试都在重新开始。

答案 1 :(得分:1)

来自libgdx论坛的kekkou的解决方案: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=27639&p=109249#p109249

他的解决方案是:将root build.gradle中的project(':android') {}块移动到android \ build.gradle。

这使得所有命令再次起作用。我没有发现任何缺点。

我的项目提交此修复程序: https://github.com/Leejjon/BluffPoker/commit/d10deb090c2d80e641d733efdaa85f99c0a9fe2f

答案 2 :(得分:0)

在你的gradle-wrapper.properties中

,尝试使用:

distributionUrl = HTTPS://services.gradle.org/distributions/gradle-4.3-rc-2-all.zip