Unit test configuration broke in Android Studio 3.

2019-02-25 09:52发布

I updated to Android Studio 3.1 and as suggested by Android Studio also:

  • Updated the Android gradle plugin to 3.1.0 from 2.3.0 (also tried the new 3.1.1, the problem persists)
  • Updated the buildToolsVersion to 27.0.3
  • Downloaded the Android 8.1 API 27 with the SDK manager.

I am using the JDK 8.

My previous Android Studio build configuration "Core tests" which just ran all tests in one module now says:

Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.5.1-all.zip'.

My set up: enter image description here

The exact exception as shown in the ide: enter image description here

My full source code: https://github.com/Leejjon/BluffPoker

Apparently the same Nullpointer occurs when running this on the command line: gradle :core:test This command will fail with the same NullPointer. Doing a test on the root project like gradle test will run fine. I can also deploy the app on my Android phone. This is probably not IntelliJ related but the Android gradle plugin 3.1.0 breaking the ability to run the gradle :core:test command.

TLDR: Running any gradle task in the core module like gradle :core:sometask seems to result in a null pointer since Android gradle plugin 3.1.0.

My workaround for now is to use the gradle test command to run all tests in all modules and study the generated html pages by junit (found in BluffPoker\core\build\reports\tests\test\index.html) to troubleshoot whether they are failing.

3条回答
时光不老,我们不散
2楼-- · 2019-02-25 10:00

in your gradle-wrapper.properties, try using:

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

查看更多
祖国的老花朵
3楼-- · 2019-02-25 10:09

As this bug commenter pointed out: https://issuetracker.google.com/issues/77605097#comment7

disabling the "configure on demand" feature of Gradle (in Settings: Build, Execution, and Deployment: Compiler) is a viable workaround.

Since I did this my Unit tests are all working again.

查看更多
淡お忘
4楼-- · 2019-02-25 10:20

Solution from kekkou of the libgdx forums: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=27639&p=109249#p109249

His solution is: Move the project(':android') {} block in root build.gradle into android\build.gradle.

This makes all commands work again. I did not find any downsides.

The commit for this fix on my project: https://github.com/Leejjon/BluffPoker/commit/d10deb090c2d80e641d733efdaa85f99c0a9fe2f

查看更多
登录 后发表回答