Android 设备监视器使用来自 JAVA_HOME 和 Android Studio 的不同 java 版本

Android device monitor using different java version from JAVA_HOME and Android Studio

我有 Android Studio 3.0 项目结构中的设置 - JDK 位置 - "C:\Java\jdk1.8" 还有我的 1.8 jdk。但是在这台电脑上 JAVA_HOME 变量设置为 "C:\Java\jdk1.7".

那我就打不开Android设备监视器了。我收到一个日志文件说:

java.version=1.7.0_80
....
org.osgi.framework.BundleException: The activator com.android.ide.eclipse.monitor.MonitorPlugin for bundle com.android.ide.eclipse.monitor is invalid
Caused by: java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocation$AndroidLocationException : Unsupported major.minor version 52.0

在不更改 JAVA_HOME 的情况下,我如何 运行 Android Studio 使用 jdk1.8?

我终于解决了这个问题。我首先将 JAVA_HOME 设置为指向 jdk1.8,然后我将项目结构 - JDK 位置也设置为指向 jdk1.8,并且我还修改了启动 Android 的 .bat 文件Studio 设置 Java 版本 1.8。但是 none 这有帮助。我的 Android 设备监视器仍然说我正在使用 jdk1.7。所以经过一些研究,我发现实际上,它不是 Android Studio 的一部分,它是 Android SDK 的一部分的独立工具:

https://developer.android.com/studio/profile/monitor.html

所以我开始研究如何在该独立工具上设置 java,我所做的就是转到它的位置 C:\Users\username\AppData\Local\Android\Sdk\tools\lib\monitor-x86_64。在那里我找到了 monitor.ini 我认为它负责 Android 设备监视器的初始化所以我只是添加了我想要的 java 版本使用并且有效。见截图: