繁体   English   中英

Android Studio 3.1中的单元测试配置中断

[英]Unit test configuration broke in Android Studio 3.1

我更新到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 '执行构建。

我的设置: 在此输入图像描述

ide中显示的确切异常: 在此输入图像描述

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

在命令行上运行时,显然会出现相同的Nullpointer: gradle :core:test此命令将失败并使用相同的NullPointer。 gradle test那样对根项目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(在BluffPoker \\ core \\ build \\ reports \\ tests \\ test \\ index.html中找到)研究生成的html页面,以解决它们是否是失败。

正如这个错误评论者所指出的那样: https//issuetracker.google.com/issues/77605097#comment7

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

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

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

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

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

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

在gradle-wrapper.properties中,尝试使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM