我更新到Android Studio 3.1并按照Android Studio的建议:
我使用的是JDK 8.
我之前在一个模块中运行所有测试的Android Studio构建配置“核心测试”现在说:
无法使用Gradle分发“https://services.gradle.org/distributions/gradle-4.5.1-all.zip”执行构建。
我的完整源代码: 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中找到) )解决他们是否失败的问题。
答案 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)
,尝试使用:
distributionUrl = HTTPS://services.gradle.org/distributions/gradle-4.3-rc-2-all.zip