質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2109閲覧

Android Studioでgradlew testでjava.lang.NullPointerExceptionが起きる

webarata3

総合スコア367

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/05/12 04:31

環境

Android Studio 3.1.2

Windows 10、macOS 10.12.6 いずれも同様の現象が起きる

状況

Android Studio 3.1.2で新規プロジェクトを作成します。
作成後、app/build.gradleに以下を追加します。

groovy

1android { 2 // 略 3 compileOptions { 4 sourceCompatibility JavaVersion.VERSION_1_8 5 targetCompatibility JavaVersion.VERSION_1_8 6 } 7}

その後、コンソールから、./gradlew testを実行すると

$ ./gradlew test FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':app'. > java.lang.NullPointerException (no error message) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 11s

となります。

最初に追加した、Java 1.8の設定を削除するとエラーは起きません。
何らかの対応方法をご存じの方がいらっしゃいましたら、よろしくお願いします。

確認したこと

  • プロジェクトのクリーン
  • プロジェクトルートの.gradleの削除
  • Gradleのバージョンの変更(最初4.4。4.5にしたが変わらず、4.6以上は別の問題のため未確認)

参考までにスタックトレースは次のように出力されています。

$ ./gradlew test --stacktrace // 文字数制限のため省略 Caused by: java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:782) at com.google.common.base.Splitter.split(Splitter.java:376) at com.android.utils.PathUtils.getClassPathItems(PathUtils.java:84) at com.android.build.gradle.internal.transforms.FixStackFramesTransform.<init>(FixStackFramesTransform.java:151) at com.android.build.gradle.internal.TaskManager.maybeCreateDesugarTask(TaskManager.java:2425) at com.android.build.gradle.internal.TaskManager.createPostCompilationTasks(TaskManager.java:2248) at com.android.build.gradle.internal.ApplicationTaskManager.addCompileTask(ApplicationTaskManager.java:295) at com.android.build.gradle.internal.ApplicationTaskManager.lambda$createTasksForVariantScope$12(ApplicationTaskManager.java:229) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) at com.android.build.gradle.internal.ApplicationTaskManager.createTasksForVariantScope(ApplicationTaskManager.java:225) at com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:530) at com.android.build.gradle.internal.VariantManager.lambda$createAndroidTasks$1(VariantManager.java:352) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:348) at com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin.java:751) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:746) at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:652) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:648) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58) at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324) at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy26.afterEvaluate(Unknown Source) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:76) ... 81 more * Get more help at https://help.gradle.org BUILD FAILED in 2s

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakajika

2018/05/12 07:04

JDKのバージョンはいくつですか?
webarata3

2018/05/12 07:09

java version "1.8.0_172"です。
webarata3

2018/05/12 07:19

あ、10です。それが原因かもですね。ちょっと1.8に変えてみます。
webarata3

2018/05/12 07:28

動きました! Javaのバージョンの問題でした。WIndowsもmacOSもJava 10でした。。Android開発のときは8にしておかないといけないですね。
keicha_hrs

2018/05/12 08:26

GUI操作ではProject StructureによるJDKの設定が生きますが、端末作業だけはどうしようもないですね
guest

回答1

0

自己解決

アドバイスを頂いて解決しました。

gradlewの実行は、Android Studioに設定されているJDKではなく、(あたりまえですが)端末自体に設定されているPATHにあるJDKが使用されます。
今回問題だったのは、PATHが通っているJavaが10であったためでした。
使用するJavaを8にしたところエラーは消えました。

Windows、macOSともにJAVA_HOMEを見直し、java -versionでJava 8になっていることを確認し実行しました。

投稿2018/05/12 08:59

webarata3

総合スコア367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問