Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using different JDK locations on different processes might cause Gradle to spawn multiple daemons. [Android Studio 4.1] [duplicate]

I was building my test app in Android Studio, then in the Event Log it said:

Android Studio is using this JDK location: C:\Program Files\Android\Android Studio\jre which is different to what Gradle uses by default: C:\Program Files (x86)\Java\jdk1.8.0_181 Using different locations may spawn multiple Gradle daemons if Gradle tasks are run from command line while using Android Studio.

Then gave these options:

  1. More info...
  2. Set Android Studio to use the same JDK as Gradle and sync
  3. Do not show this warning again

I clicked on:

Set Android Studio to use the same JDK as Gradle and sync

then my app didn't want to build any more.

This is the error:

Gradle sync failed: Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.

For example, an unrecognized jvm option is used.
Please refer to the User Manual chapter on the daemon at https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html

Process command line: C:\Program Files (x86)\Java\jdk1.8.0_181\bin\java.exe -Xmx1536m -Dfile.encoding=windows-1252 -Duser.country=ZA -Duser.language=en -Duser.variant -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

Please read the following process output to find out more:

Error occurred during initialization of VM Could not reserve enough space for 1572864KB object heap Consult IDE log for more details (Help | Show Log) (16 s 166 ms)

I checked the event logs:

I think previously it did this:

Instructing gradle to use java from C:/Program Files/Android/Android Studio/jre

Now it says this:

Instructing gradle to use java from C:/Program Files (x86)/Java/jdk1.8.0_181

How do I set it back to the way it was so my app can build again?

Any help / advice will be appreciated

like image 865
Shiasu-sama Avatar asked Oct 17 '19 12:10

Shiasu-sama


People also ask

How to adjust proxy Settings in Gradle Android Studio?

To set the HTTP proxy settings in Android Studio: From the menu bar, click File > Settings (on macOS, click Android Studio > Preferences). In the left pane, click Appearance & Behavior > System Settings > HTTP Proxy. The HTTP Proxy page appears.

Is JDK included in Android Studio?

A copy of the latest OpenJDK comes bundled with Android Studio 2.2 and higher, and this is the JDK version we recommend you use for your Android projects.


3 Answers

Go to File, Project Structure, SDK location and change the JDK location dropdown to JAVA_HOME.

Project structure in Androdi Studio 3.6 beta

like image 123
Hoornet Avatar answered Oct 17 '22 19:10

Hoornet


You need to change/add an environment variable.

Follow this link to know how to change/add environment variables.

Now add/modify the variable 'JAVA_HOME' and set the path to C:\Program Files\Android\Android Studio\jre

Note: When you are going to work on a different Java project later on in a different IDE, you might have to change this variable again to the default Java location (in this case perhaps C:/Program Files (x86)/Java/jdk1.8.0_181)

like image 43
Guru Ananda Avatar answered Oct 17 '22 18:10

Guru Ananda


Ubuntu 16.04 LTS, Android Studio 3.6

That's how I got rid of the warning:

1) locate the AS launcher script studio.sh on your machine, mine is under: /opt/android-studio-3.x/bin
2) inside the script, you'll find the following lines:

# ---------------------------------------------------------------------
# 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) if, for some reason, you're unable to export your environment variables to the launcher (like it happens to me from the xfce4 session), you can write the desired JAVA_HOME value inside the studio.jdk file whose location on my system, as per the script, is in $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) lastly, by restarting AS from the DE session, you should see the JAVA_HOME under the File -> Project Structure -> SDK Location window set to the above value and both AS and gradle should use the same JRE:

Project Structure Window

like image 32
PJ_Finnegan Avatar answered Oct 17 '22 19:10

PJ_Finnegan