我下载了Android Studio并尝试启动该程序。

这是在Windows 7 64位Java 1.7上运行的。在安装过程中,检测到我的Java 1.7,安装的其余部分也顺利进行。但是,当试图从桌面图标启动应用程序时,什么也没有发生。查看任务管理器,从CMD加载了一个新进程。这是因为它试图运行批处理文件studio.bat。

当我通过CMD执行时,我得到以下错误:

ERROR: cannot start Android Studio. No JDK found. Please validate
either ANDROID_STUDIO_JDK or JDK_HOME or JAVA_HOME points to valid
JDK installation. ECHO is off. Press any key to continue . . .

我试图打开idea属性文件,看看是否有可以为这个ANDROID_STUDIO_JDK配置的东西或类似的东西。然而,我什么也没找到。我希望你们中的一些人可以告诉我,如果你能够安装这个,或者如果你也有问题。


当前回答

在Windows 10上,重新启动安装程序并以管理员身份运行对我来说很有效。

其他回答

好了,我知道如何修复这个讨厌的bug了。

在开始之前

进入Android Studio安装文件夹,找到bin文件夹。在bin文件夹中,您将找到studio.bat。执行该文件,它将显示错误。如果它是关于Java路径的,那么遵循技巧1。

技巧1

当您设置路径JAVA_HOME等时,请确保在路径的末尾不包括bin。这为我解决了问题。

JAVA_HOME => C:\Program Files\Java\ jdk1.7.0_21

path => C:\Program Files\Java\ jdk1.7.0_21\bin

它适用于JDK 1.7(我尝试使用32位)。

如果这样做,您将看到如下所示的初始屏幕。

技巧2

您是否收到下面的错误消息?

您的Android SDK已经过时或缺少模板。请确保 您正在使用SDK版本22或更高的版本。

这个错误可能发生,因为您在路径变量中引用了您的旧SDK(用Eclipse下载的)。转到环境变量,删除任何对旧SDK文件夹的引用,并将其指向Android Studio安装文件夹中的新SDK文件夹。

保存并重新启动Studio,现在事情应该像预期的那样工作了。

技巧3

如果您讨厌通过删除旧的引用来打乱上面给出的路径变量,那么只需按照以下步骤引用Studio附带的新SDK路径。

*项目默认值* -> *项目结构* ->单击“新建”->选择“Android SDK”->选择studio安装内部的SDK文件夹。

如果你得到消息“你的Android SDK已经过时…”-点击“配置”- >“项目默认值”- >“项目结构”,选择“SDK”- >“Android SDK”,并在“构建目标”中选择“Android 4.2.2”。点击“OK”。现在应该可以正常工作了。

对我来说,问题是我已经将GC vm参数更改为C:\Users\<username>\. androidstudio2.1 \studio64.exe中的-XX:+UseParallelGC。vmoptions文件。这就是我在Eclipse中使用的,我尝试了各种方法让AndroidStudio的效率达到Eclipse的一半。我恢复了GC到-XX:+UseConcMarkSweepGC。

我的问题是因为我的Windows用户名中有一个&字符,所以在默认路径安装时,运行bin/studio.bat后,我得到了以下错误

                                               |
                                               v notice broken path
The system cannot find the file C:\Users\Daniel \studio64.exe.vmoptions.
Exception in thread "main" java.lang.NoClassDefFoundError: com/intellij/idea/Main
Caused by: java.lang.ClassNotFoundException: com.intellij.idea.Main
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.intellij.idea.Main.  Program will exit.

所以我卸载了它,重新安装到程序文件,它现在启动正常。

有时,您可以通过设置环境变量来解决这类问题,以便进程在正确的位置查找JDK。

另一种方法是弄清楚进程在寻找什么,然后把JDK放在那里。

我已经成功地使用了Sysinternals的Process Monitor:

Start ->执行-> procmon命令 进入滤镜菜单,然后选择滤镜… 将事件类设置为“文件系统”,然后设置为“包括” 添加,然后确定

这将过滤到您的机器上发生的所有文件系统操作。

您可以尝试根据文件系统操作的结果进行过滤:

右键单击“结果”列,然后排除“成功”

您还可以根据进程名轻松地进行筛选,可以从filter…菜单选项或右键单击进程名称列并选择包含' Process .exe'。

一旦发现失败的文件系统操作,Path列将告诉您将JDK放在哪里。

我发现这很有力量。特别是与通过试错来改变环境变量的令人沮丧的过程相比。