web-dev-qa-db-ja.com

GradleにJavaを別の場所から使用するように指示する方法は?

私はAndroid Studioでテストアプリをビルドしていましたが、イベントログで次のように述べています。

Android Studioは次のJDKの場所を使用しています:C:\ Program Files\Android\Android Studio\jreこれは、Gradleがデフォルトで使用するものとは異なります:C:\ Program Files(x86)\ Java\jdk1.8.0_181異なる場所を使用すると生成される場合がありますAndroid Studioを使用しているときにコマンドラインからGradleタスクが実行される場合、複数のGradleデーモン。

次に、これらのオプションを与えました:

  1. より詳しい情報...
  2. Android StudioでGradleと同じJDKを使用して同期するように設定します
  3. 今後この警告を表示しない

私はクリックしました:

Android StudioでGradleと同じJDKを使用して同期するように設定します

その後、私のアプリはこれ以上ビルドしたくありませんでした。

これはエラーです:

Gradleの同期に失敗しました:デーモンプロセスを開始できません。
この問題は、デーモンの構成が正しくないことが原因である可能性があります。

たとえば、認識されないjvmオプションが使用されています。
https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html にあるデーモンのユーザーマニュアルの章を参照してください

コマンドラインの処理:C:\ Program Files(x86)\ Java\jdk1.8.0_181\bin\Java.exe -Xmx1536m -Dfile.encoding = windows-1252 -Duser.country = ZA -Duser.language = en -Duser。バリアント-cp C:\ Users\{MyUserName} \。gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar org.gradle。 launcher.daemon.bootstrap.GradleDaemon 5.4.1

詳細については、次のプロセス出力をお読みください。

VMの初期化中にエラーが発生しました。1572864KBオブジェクトヒープ用に十分なスペースを予約できませんでした。詳細については、ログIDEログ(ヘルプ|ログを表示))(16秒166ミリ秒) )

イベントログを確認しました。

私は以前にこれをしたと思います:

GradleにJava from C:/ Program Files/Android/Android Studio/jreを使用するように指示する

今それはこれを言います:

Java from C:/ Program Files(x86)/Java/jdk1.8.0_181)を使用するようにgradleに指示する

アプリを再度ビルドできるように、それを元の状態に戻すにはどうすればよいですか?

どんな助け/アドバイスもいただければ幸いです

9
Shiasu-sama

環境変数を変更/追加する必要があります。

このリンク に従って、環境変数を変更/追加する方法を確認してください。

次に、変数「Java_HOME」を追加/変更し、パスを_C:\Program Files\Android\Android Studio\jre_に設定します

注:別のJavaプロジェクトを後で別のIDEで作業する場合、この変数をデフォルトのJavaに再度変更する必要がある場合があります。場所(この場合はおそらくC:/Program Files (x86)/Java/jdk1.8.0_181

1
Guru Ananda

これと同じ問題がありますが、メッセージは私のAndroid Studioの設定と矛盾しているようです。

メッセージ:

Android StudioとGradleは、JDKに対して異なる場所を使用しています。 Android Studio:D:\ Program files\Android\Android Studio\jre Gradle:C:\ Program Files(x86)\ Java\jdk1。 8.0_91

異なるJDKロケーションを使用すると、Android Studioおよびその他の外部プロセスのタスクを実行するときに、Gradleが複数のデーモンを生成する可能性があります。

私のJava_HOMEが指しているのはC:\ Program Files(x86)\ Java\jdk1.8.0_91で、これは私のGradleが使用していることを示すメッセージです。しかし、Android Studioで、[ファイル] | [プロジェクトの構造]に移動すると、gradle JDKパスは次のように設定されます:D:\ Program Files\Android\Android Studio\jre -これはnotエラーメッセージが報告する内容であり、Android StudioはJava_HOMEが指しているパスではなく、Gradleに設定したパスを使用しています。そのため、私が期待していることとはほぼ逆のように見え、修正方法がわかりません。

他のアプリケーションでそのまま必要なので、Java_HOMEを変更できないと思います。

1
sb4

Gradleは明らかに私のネイティブJavaインストール(Oracleから))を使用していますが、Android Studioは独自のバージョンを使用しています。

Android Studioを3.6.1にアップグレードしてから、この警告は無視しています。これまでのところ問題はありません。実際、アプリの新しいバージョンを問題なくリリースしました。

これが煩わしくなり、他に問題がない場合は、今後の警告を無視するオプションがあります。警告を押して、この警告に関連する今後のメッセージを無視するオプションを選択してください。

0
Pablo Alfonso

Ubuntu 16.04 LTS、Android Studio 3.6

それが私が警告を取り除く方法です:

1)お使いのマシンでASランチャースクリプトstudio.shを見つけます。私のものは/opt/Android-studio-3.x/binです。
2)スクリプト内には、次の行があります。

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, Java_HOME, "Java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/Java" ]; then
  JDK="$STUDIO_JDK"
fi

if [ -z "$JDK" -a -s "$HOME/.AndroidStudio3.6/config/studio.jdk" ]; then
  USER_JRE=`"$CAT" $HOME/.AndroidStudio3.6/config/studio.jdk`
...

3)何らかの理由で、環境変数をランチャーにエクスポートできない場合(xfce4セッションから私に起こったように)、Java_HOME内に必要なstudio.jdk値を書き込むことができますスクリプトに従って私のシステム上の場所が$HOME/.AndroidStudio3.6/config/studio.jdkにあるファイル。

$ echo $Java_HOME > $HOME/.AndroidStudio3.6/config/studio.jdk
$ cat $HOME/.AndroidStudio3.6/config/studio.jdk
/usr/lib/jvm/Java-8-Oracle

4)最後に、DEセッションからASを再起動すると、File-> Project Structure-> SDK Locationウィンドウの下にJava_HOMEが上記の値に設定されているはずです。 ASとgradleはどちらも同じJREを使用する必要があります。

Project Structure Window

0
PJ_Finnegan