1. ホーム
  2. java

[解決済み] NotNullまたはNullableをインポートすると、Android Studioがコンパイルできない

2022-02-19 01:34:02

質問

パラメータに @NotNull または @Nullable アノテーションを追加すると、Android Studio は自動的に /lib/annotations.jar を追加してインポートするのを手伝ってくれます。

import org.jetbrains.annotations.NotNull
import org.jetbrains.annotations.Nullable;

しかし、この後、プロジェクトはコンパイルされません。アノテーションを削除しても、import文は残しておくと、プロジェクトはまだコンパイルできません。 しかし NotNull と Nullable の import ステートメントを削除すると、プロジェクトはコンパイルされます。 よろしい !

Android Studioで一般的なエラーが発生します。

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

実行中 gradlew compileDebug をcmdから実行すると、わずかなヒントが得られます。

:Bugtester:compileDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

そこで、環境変数を確認したところ、次のように設定されていました。

JAVA_HOME=C:\Program Files (x86)\Java\jre7
JDK_HOME=C:\Program Files\Java\jdk1.7.0_21\

どなたか、この件に関するアイデアをお持ちの方はいらっしゃいませんか?(javaもandroidもプログラミングは初めてです)。

どのように解決するのですか?

MavenCentralリポジトリにあるJetBrainsのオリジナルライブラリ(この例では最新版)をbuild.gradleの依存関係に使用するのが正しい方法だと思います。

dependencies {
    implementation 'com.intellij:annotations:+@jar'
    ...
}