我正在从这个YouTube 播放列表 学习Android开发,它提到我需要单独安装一个JDK(Java开发工具包)来使用Android Studio。但是当我学习教程时,我能够在不需要单独安装JDK的情况下运行应用程序。
这是否意味着在旧版本的Android Studio中需要单独安装JDK(Java开发工具包),而在新版本中不需要?
我正在从这个YouTube 播放列表 学习Android开发,它提到我需要单独安装一个JDK(Java开发工具包)来使用Android Studio。但是当我学习教程时,我能够在不需要单独安装JDK的情况下运行应用程序。
这是否意味着在旧版本的Android Studio中需要单独安装JDK(Java开发工具包),而在新版本中不需要?
因此,如果您使用的是最新版本,则不需要任何额外的JDK。此外,与2016年6月的安装说明相比,官方安装说明中不再包含任何有关JDK的提示。最新版本的Android Studio 2.2和更高版本自带OpenJDK的一个副本,我们推荐您在Android项目中使用此JDK版本。
Android Studio 2.2及以上版本集成了最新的OpenJDK,以降低初学者的门槛。
然而,建议您自行安装JDK,这样您就可以独立于Android Studio更新它。
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/
这将使用Android Studio附带的JAVA(OpenJDK)。以前需要安装JDK才能使用Android Studio,因此有一些视频讲解如何安装。但是,最近的版本已经内置了JDK。请注意,Android Studio正在快速发展,教程很快就会过时。
请注意,安装Android Studio并不会自动配置内置的JDK命令行工具。如果您想使用Android SDK命令行工具,这一点很重要。为了解决这个问题,请找到Android Studio安装目录下包含java
命令(实际运行Java虚拟机的本地命令)的bin
目录,并将其添加到您的路径中。由于这可能会发生变化,我不会在此答案中添加特定目录。在Windows上,该文件名为java.exe
;在其他所有平台上,它称为java
,并具有可执行权限。
(您还需要添加包含SDK工具本身的目录。)
实际上有两个这样的目录,因为像所有Java应用程序一样,JDK包含一个Java运行时环境(JRE)。如果您只想运行SDK工具,则无论选择哪个bin
目录都没有关系。但是,如果您想在Android Studio之外编译和运行Java代码,则需要使用包含javac
命令和其他必要的JDK开发工具的bin
目录。
或者,您也可以只安装最新的JDK。没有任何理由不这样做。
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
最终我找到了 path/to/sdkmanager 的路径,它位于
/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager
但运行时
/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"
产生了错误:
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
根据像这个页面这样的帖子,我不情愿地开始考虑安装Java。 但是,我发现Java已经包含在Android Studio中,所以我运行了以下命令:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
但是接着
/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"
产生了一个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
然而,如此处所示,解决方案是使用Android Studio安装Android sdk Command-line Tools(最新版本)。
一旦我完成了这个步骤,就不再需要运行--install "cmdline-tools;latest"
,因为cmdline-tools;latest
已经被Android Studio安装了。
之后,我就能够运行flutter doctor
并按照说明操作,使得flutter doctor
不再识别任何问题。
值得注意的是,Android Studio直到我实际创建一个项目才下载其他sdk组件。
我能够下载一个Android模拟器,并在模拟器上运行该项目,而无需安装Java,除了Android Studio自带的。
我刚在studio.sh文件中添加了JAVA_HOME=/path/to/jdk和STUDIO_JDK=/path/to/jdk,现在一切正常。
我想在OpenJDK13上测试Android Studio,而不是使用嵌入式jre11。我不想在控制面板中创建全局环境变量STUDIO_JDK | JAVA_HOME
。我编写了一个小的studio-start.bat
脚本,以在自定义Java JDK版本上运行Android Studio IDE。
Android Studio Bumblebee | 2021.1.1 Build #AI-211.7628.21.2111.8092744,建于2022年1月19日
具有此嵌入式Java虚拟机。
c:\android-studio\jre\bin\java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
OpenJDK 64-Bit Server VM (build 11.0.11+9-b60-7590822, mixed mode)
我想尝试在这个Java上运行IDE。
C:\java\jdk-13.0.2\bin\java --version
openjdk 13.0.2 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
C:\android-studio\studio-start.bat
脚本。@REM Use custom JDK for AndroidStudio IDE
@set basedir=%~dp0
set STUDIO_JDK=C:\java\jdk-13.0.2
call "%basedir%bin\studio.bat
@rem the following commands did not use a custom JDK envvar.
@rem start "AndroidStudio" /I "%basedir%studio64.exe"
@rem "%basedir%studio64.exe"
>set PATH=%PATH%;"C:\Android\Android Studio\jre\bin"
- Yuri$ export PATH=$PATH:/path/to/androidstudio/jre/bin
- Yuri