Android N requires the IDE to be running with Java 1.8 or later?

AndroidAndroid StudioAndroid 7.0-Nougat

Android Problem Overview


My XML layout is not rendering with this error message. I am already using Java 8.

enter image description here

Also using latest build tools in Gradle.

android {
    compileSdkVersion 'android-N'
    buildToolsVersion 24.0.0 rc1
    ...
}

XML Error -

enter image description here

Android Solutions


Solution 1 - Android

I got the same error you describe but on OS X. I know this may not solve your problem (because I don't know the equivalent for Windows), but since this is not OS specific I am leaving the solution for any OS X fellow out there. Edit the file /Applications/Android\ Studio.app/Contents/Info.plist, and remove the 1.6 version (in my case), you may place 1.6+, 1.7+ or 1.8, whichever you prefer. Mine ended up like this

...
<key>JVMVersion</key>
<string>1.7+</string>
...

Be aware there's an incompatibility with drag and drop with java versions 1.8_60 to 1.8_75 (IDEA-146691) which the IDE will report once you successfully change the version.

For non Terminal Users

  1. Find your Android Studio.app file. If it's in the dock you can right click it and choose Options > Show in Finder.
  2. Right click it and choose Show package content.
  3. Navigate to the mentioned file (Contents/Info.plist).
  4. Edit the file with your favorite text editor.

Solution 2 - Android

Click on the letter N, next to the android icon in the Preview window and select API level 23 or lower. That should solve it.

First row of icons in the rpeview window

Solution 3 - Android

Set JDK_HOME and JAVA_HOME environment variables, in my case C:\Program Files\Java\jdk1.8.0_60.

enter image description here

Check Java version in Help > About. It should show the JRE version you just set.

enter image description here

That is it, now you can preview your layout in N.

Solution 4 - Android

For Mac users with this issue (I'm running OS X 10.11.5 and Android Studio 2.1.2), here's how you can solve it:

Currently, the Mac version of Android Studio is run with Java 6 (not necessarily the same as the JDK version for the app), because Java 6 has better font rendering than Java 7 & 8, and that's apparently more important than rendering your layout.

First of all, make sure you have JDK 8 installed.

Then run the following commands:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/

You may need to change the 91 in jdk1.8.0_91.jdk to a different version. You can see which JDK versions you have with:

$ ls /Library/Java/JavaVirtualMachines/

Unfortunately, this method requires opening the app from the terminal, but you could always create a script for it.

More info

Edit: And if you really don't want to open it from the terminal:

  1. Create an AppleScript with contents: do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
  2. File > Save Choose file format Application. Save it somewhere.
  3. If you want to change the icon, see here.
  4. Drag the app to your launchpad if you like.

Solution 5 - Android

I met the same issue.

I installed jdk1.6,jdk1.7,jdk1.8, and deployed Studio as what you did.

My solution is uninstall jdk1.6 and jdk1.7, only leave jdk1.8

sudo rm -rf ${path to jdk1.6}
sudo rm -rf ${path to jdk1.7}

That's all.

Solution 6 - Android

I'm using Ubuntu 14.04 and I was facing a similar error, with the difference I don't have NDK. My solution was, after setting up Java 8 in project definition, reboot Android Studio, no more.

Check system Java version, in console "java -version", output should say something like this

java version "1.8.0_91"

Solution 7 - Android

Had the same problem with Ubunutu. The problem was not running the IDE with Java8.

I fixed it with updating the default java program of the OS, using:

sudo update-alternatives --config java

And choosing the relevant Java8 path.

Solution 8 - Android

From the docs: https://developer.android.com/studio/intro/studio-config.html#file_location

> STUDIO_JDK: set the JDK with which to run Studio

I prefer using the STUDIO_JDK variable and leave other default java home variables alone.

Solution 9 - Android

I faced the problem "Android N requires the IDE to be running with Java 1.8 or later." The error kept showing up in spite of setting C:\Program Files\Java\jdk1.8.0_92 as the project's JDK in File > Project Structure.

I solved it by updating JAVA_HOME in my environment variables from C:\Program Files\Java\jdk1.7.0_67 to C:\Program Files\Java\jdk1.8.0_92. When I did that and restarted Android Studio, the design mode became available.

OS: Windows 10

Android Studio: 2.1.2

Solution 10 - Android

I have solved it in these way.(AS+MAC OX El Capitan)

  1. Updating SDK Tools>Android SDK platform tools

  2. Go to Help>Edit Custom Properties> A dialog will prompt(press yes) then write

     JVMVersion=1.8 
    

Then close Android Studio fully and reload the project

Solution 11 - Android

My issue was that the Android N was "partially installed".

My solution was to go to - Preferences/Appearances and Behavior/System Settings/Android SDK and check the Status. If it's "partially installed" then you have to uninstall then reinstall. (Uncheck the checkbox and hit apply; it will uninstall; then you can check the box and install it again) Worked for me. If you go to lower version(like 23) then you have to change the buildToolsVersion variable to "23.0.0" in the build.gradle.

Solution 12 - Android

I was facing the same problem recently. Try changing the API preview level to 23 or lower. That worked for me.

Solution 13 - Android

I had faced the same problem. Please make sure that you are rendering the XML layout for the compiled SDK version (Must not be greater) . Means you will face this if you are compiling the code using Targeted SDK version 23 and your trying to render the XML in SDK version 24.

Solution 14 - Android

There are several thing to remember when set the STUDIO_JDK on Mac OS:

  • by default Apple's Java 1.6 is used to start the Android Studio
  • when the STUDIO_JDK is set to Oracle's Java it will be used by the Android Studio to run

The difference between two is that Apple's Java IMO provides nicer and better fonts antialiasing in the IDE.

A reply here is referencing a bug in Android Studio regarding the fonts antialiasing. The ticket is already closed but still rendering is different for Apple Java and Oracle SDK (I have v1.8.0_102). And the former still has better perception than the last.

Solution 15 - Android

try to use in project Java 1.8 - download last version of JDK and install it(if JSK is absent)

Then add to build.gradle these lines android { ... // Configure only for each module that uses Java 8 // language features (either in its source code or // through dependencies). compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // For Kotlin projects kotlinOptions { jvmTarget = "1.8" } }

Solution 16 - Android

machine: windows8 64bit in my case the jdk1.7 I had installed was 32bit hence I was using studio.exe (32bit) so even when I downloaded the new jdk1.8 (64bit) the studio instance I was using (32bit) couldn't detect it, but when I uninstalled the older jdk and tried to rerun studio.exe I was told to install a 32bit jdk. so I ran studio64.exe and it ran smoothly. ensure you have the correct path in your environment variables. cheers android N

Solution 17 - Android

Make sure you have installed jdk for x64 and not x84 when starting Android Studio (x64)

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmihirjoshiView Question on Stackoverflow
Solution 1 - AndroidLaloLoopView Answer on Stackoverflow
Solution 2 - AndroidIanView Answer on Stackoverflow
Solution 3 - AndroidmihirjoshiView Answer on Stackoverflow
Solution 4 - AndroidwumboView Answer on Stackoverflow
Solution 5 - AndroidyoungwindView Answer on Stackoverflow
Solution 6 - AndroidSergio A GuzmánView Answer on Stackoverflow
Solution 7 - Androiddanny11View Answer on Stackoverflow
Solution 8 - AndroidNublodeveloperView Answer on Stackoverflow
Solution 9 - AndroidMaksim DmitrievView Answer on Stackoverflow
Solution 10 - AndroidMilonView Answer on Stackoverflow
Solution 11 - AndroidtiborKView Answer on Stackoverflow
Solution 12 - Androiduser5464136View Answer on Stackoverflow
Solution 13 - AndroidMuhamed Riyas MView Answer on Stackoverflow
Solution 14 - AndroidMykolaView Answer on Stackoverflow
Solution 15 - AndroidAlexanderView Answer on Stackoverflow
Solution 16 - AndroidPeterstev UremgbaView Answer on Stackoverflow
Solution 17 - Androiduser1564762View Answer on Stackoverflow