Preview: Android N requires the IDE to be running with Java 1.8 or later
提示升级1.8。
然后查看环境,确实已经是1.8,但android studio还是报错。
说明,目前设置的java环境和as所使用的不一样。
as的怎么看?想了半个多消失突然灵光一闪,help里有。
果然,显示使用的是1.7jre…
居然有两套,1.8jdk和1.7jre,彻底崩坏了。
手动添加1.8jre,最后测java的时候居然说该虚拟机不能用。
可以直接修改android studio到jre么?
读studio.sh源码,可以看到
3 IDE_HOME=`dirname "$SCRIPT_LOCATION"`/..
54 IDE_BIN_HOME=`dirname "$SCRIPT_LOCATION"`
55
56 # -----------------------------------------------
57 # Locate a JDK installation directory which will be used to run the IDE.
58 # Try (in order): STUDIO_JDK, ../jre, JDK_HOME, JAVA_HOME, "java" in PATH.
59 # -----------------------------------------------
60 if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
61 JDK="$STUDIO_JDK"
62 elif [ -x "$IDE_HOME/jre/jre/bin/java" ] && "$IDE_HOME/jre/jre/bin/java" -version > /dev/null 2>&1 ; then
63 JDK="$IDE_HOME/jre"
64 elif [ -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
65 JDK="$JDK_HOME"
66 elif [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
67 JDK="$JAVA_HOME"
68 else
69 JAVA_BIN_PATH=`which java`
70 if [ -n "$JAVA_BIN_PATH" ]; then
71 if [ "$OS_TYPE" = "FreeBSD" -o "$OS_TYPE" = "MidnightBSD" ]; then
72 JAVA_LOCATION=`JAVAVM_DRYRUN=yes java | "$GREP" '^JAVA_HOME' | "$CUT" -c11-`
73 if [ -x "$JAVA_LOCATION/bin/java" ]; then
74 JDK="$JAVA_LOCATION"
75 fi
76 elif [ "$OS_TYPE" = "SunOS" ]; then
77 JAVA_LOCATION="/usr/jdk/latest"
78 if [ -x "$JAVA_LOCATION/bin/java" ]; then
79 JDK=
非常长的一串,明显是从系统环境中自动读取的。
那么为什么会选择1.7jre而不是sun的1.8呢?
这不知道是什么时候的文章了,先这么保存了吧.