Android Studio更新问题与jre/bin/java相关。

在更新Android Studio时,我遇到了以下错误。补丁已经下载并解压,但是与`jre/bin/java Access denied`发生了一些冲突。错误消息如下截图所示。 错误消息如链接的图片所示:
(点击图片放大)

我觉得你是在使用私人网络下载补丁,试着改用公共网络重新下载一次,这样服务器才能信任你的身份。 - abu-ahmed al-khatiri
我也遇到了这个问题。我将Android Studio安装在/opt/android-studio目录下,并以root用户的身份进行了chown操作。当需要更新时,我会先运行sudo su命令,然后执行/opt/android-studio/bin/studio.sh脚本。 - dcow
有人找到解决办法吗?我在我的主文件夹中安装了Android Studio,但仍然遇到这个错误。 - authentictech
1第二次尝试时,它实际上对我起作用了。我会留下这个评论,让大家知道Android Studio的更新过程可能有点不稳定。 - authentictech
1@authentictech 我也是一样的情况。我刚刚关闭了包括Android Studio在内的所有程序。然后重新启动Android Studio时,我又收到了更新提示,一切都正常,没有出现任何错误。我没有更改任何权限,也没有终止任何进程或重启系统。我使用的是Ubuntu 18.04。 我留下这个评论的原因是为了让大家知道,Android Studio的更新过程可能有点棘手。 - cesargastonec
按照以下方式安装Android Studio... sudo apt-get install snapdsnap install android-studio --classic - user1166068
14个回答

杀掉Java以进行更新。
运行以下命令:ps -A |grep java 该命令的输出将给出正在系统上运行的Java进程列表。记下您想要终止的进程的进程ID(PID),然后运行以下命令: kill -9 PID

1我以为没有运行Java,但是我使用的是ps -a而不是ps -A - Marek Lisý
1我使用ps aux | grep java命令,在所有可能存在的java进程中,唯一一个要被杀掉以进行此升级的是gradle守护进程,其标识为"org.gradle.launcher.daemon.bootstrap.GradleDaemon"。 - Alessio
这样能解决问题吗?你也可以点击“取消”,但是都无法完成更新。或者我有什么地方理解错了吗? - oliversisson
4啊,我明白了。我所采取的步骤是:(1)关闭Android Studio(2)使用kill -9命令终止所有Java进程(3)使用studio命令运行Android Studio并进行更新。 - oliversisson
对我来说,在Arch Linux上没有一个解决方案有效,唯一有效的方法是重新安装Android Studio。 - Will
这个方法有效,但我希望能理解为什么……在操作之前确保关闭Android Studio! - kodu
在我的情况下:关闭Android Studio中的项目 -> 关闭欢迎界面 -> killall -9 java(没有这个会导致失败)-> 启动Android Studio -> 欢迎界面右下角菜单进行更新 -> 成功,无错误。 - 林果皞
这在Debian/KDE上对我没用。为了使其更新,我取消了/jre/bin/java文件的可执行属性,并在更新完成之前再次勾选它(请参见下面的答案)。 - mYnDstrEAm

我发现对我有用的是,在运行Android Studio时(在启动更新补丁下载之前),我在命令行上执行了ps -ef|grep jre,发现有两个jre进程正在运行,一个是为Android Studio服务的,另一个是Gradle守护进程使用的,而Gradle守护进程也使用了Android Studio内置的jre。
Gradle守护进程的命令行末尾会有类似这样的内容:gradle-5.3.1/lib/gradle-launcher-5.3.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 5.3.1,当你使用ps列出进程时,具体版本可能不是5.3.1。
杀掉Gradle进程,然后开始更新下载,并从Android Studio内部重新启动,可以成功进行更新。

2唯一对我有效的方法是,在安装升级之前终止Java进程(Gradle)。另一个解决方案是在看到更新通知后立即点击。这样做可以让AS没有时间实例化Gradle,从而成功完成升级。 - Alexander Haroldo da Rocha
2这对我有用 - Aeiman Bakeer
1这个答案对我有用,"Kill java for update"的答案没有。这是将Android Studio 3.1更新到3.5的过程。 - tonylo
最终你的方法对我起作用了。这是在Ubuntu 18.04上,将Android Studio 3.4升级到4.0。 - s1d

Java进程在gradle构建过程中被杀死后可以重启。最简单的方法是关闭项目(文件 -> 关闭项目)。

现在回到选择项目菜单,确保没有正在运行的gradle。

在右下角点击配置并更新Android Studio。


对我有效的唯一方法。 - Christian
解决方案有效。谢谢。 - Mushahid Gillani
只是这样简单,谢谢! - gordinmitya

那些答案对我没有用。我正准备升级到Android Studio 3.5,但遇到了这个问题。
杀掉Java进程,使升级终止,然后重新启动Android Studio,使用旧版本。
我的解决方法是删除旧的android-studio目录,从网站上下载一个新的,并将其放在与旧版本相同的位置。
希望能对某人有所帮助!

在我尝试通过JetBrains Toolbox应用程序更新安装的Android Studio时,我遇到了同样的问题。在这种情况下,更新应该通过Toolbox进行,而不是从IDE中更新。

尝试卸载Dart和Flutter插件,然后重新安装Dart和Flutter插件,这对我有效。

4请您写一个更详细的解释好吗?给出一些新用户可以按照的示例命令来解决问题。 - Tom Brossman
不必卸载Dart和Flutter插件,禁用这些插件也可以起作用。 - Nikhil

我在从Android Studio 3.5升级到3.6时也遇到了同样的问题。 通过关闭项目并从文件菜单进行更新,问题得以解决。

对我来说,这个问题通过以下步骤得到解决:
  1. 更改当前项目中Java的路径。(文件 -> 项目结构 -> SDK位置)
  2. 关闭当前项目。
  3. 重新启动机器(由于多次尝试失败,所以考虑重新启动)。

下次启动工作室时,它没有打开任何项目(因为我在上一个会话中已经关闭了)。现在从配置选项中更新,并且成功地工作了。


以上的答案都没有解决我的问题。 我成功做到的是从项目结构中更改默认的jdk。 在更新之前 转到文件 -> 项目结构 -> SDK位置。 然后将位置更改为您已经在计算机上安装的OpenJDK或Oracle JDK。 之后,更新您的Android Studio,一切应该没问题(希望如此...你知道Google对待开发者的方式;))

这是一个非常简单的问题。
你需要做的事情是,进入安卓安装文件夹中名为java的文件(可能在/opt/android_studio/jre/jre/bin/java或者[你解压安卓tar文件的文件夹]/jre/jre/bin/java),并设置权限为读写
现在你可以再次进行更新了。

在终端中输入type -p java将显示Java的路径。或者输入locate java将显示所有包含Java名称的文件。 - LeonidMew
这个应该可以运行,但对我来说却没有。最后我尝试了JetBrains Toolbox应用程序的方式,结果成功了。 - Val Martinez