发现无法将 android studio 2.0 更新到 2.1

Posted

技术标签:

【中文标题】发现无法将 android studio 2.0 更新到 2.1【英文标题】:Finding it impossible to update android studio 2.0 to 2.1 【发布时间】:2016-09-06 07:15:51 【问题描述】:

我一直在尝试将 android studio 从 2.0 更新到 2.1,但已经没有想法了。我得到了一个

java.lang.OutOfMemoryError: Java heap space

错误。我已经尝试过寻找解决方案并尝试了诸如此类的解决方案,但没有任何乐趣:

*** Answer

Tech-Docs from Google

这是我收到的完整错误:

Temp. directory: C:\Users\Aaron\AppData\Local\Temp\
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at com.intellij.updater.Utils.copyStream(Utils.java:165)
at ie.wombat.jbdiff.JBPatch.bspatch(JBPatch.java:83)
at com.intellij.updater.BaseUpdateAction.applyDiff(BaseUpdateAction.java:112)
at com.intellij.updater.UpdateAction.doApply(UpdateAction.java:44)
at com.intellij.updater.PatchAction.apply(PatchAction.java:184)
at com.intellij.updater.Patch$3.forEach(Patch.java:308)
at com.intellij.updater.Patch.forEach(Patch.java:360)
at com.intellij.updater.Patch.apply(Patch.java:303)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:84)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:75)
at com.intellij.updater.Runner.doInstall(Runner.java:280)
at com.intellij.updater.Runner.access$000(Runner.java:17)
at com.intellij.updater.Runner$1.execute(Runner.java:246)
at com.intellij.updater.SwingUpdaterUI$5.run(SwingUpdaterUI.java:191)
at java.lang.Thread.run(Thread.java:745)

我已经在正确的目录中创建了 .vmoptions 文件,方法是转到帮助 > 编辑自定义 VM 选项。创建的文件被命名为studio64.exe.vmoptions,以防万一我编辑了一行之后这个文件的内容是:

# custom Android Studio VM options

#
# *DO NOT* modify this file directly. If there is a value that you would like to    override,
# please add it to your user specific configuration file.
#
# See http://tools.android.com/tech-docs/configuration
#
-Xms256m
-Xmx2048m //Edited Line
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=

-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-Didea.paths.selector=AndroidStudio2.0
-Didea.platform.prefix=AndroidStudio

我之前从 1.5 更新到 2.0 也遇到了麻烦,不得不进行全新安装,但对于 18MB 的补丁文件来说这非常乏味。

最后,我认为这是一系列与 android 相关的安装文件夹,我认为这是一个有点随机的地方。不知道这是我在安装过程中做的还是android的:

.

编辑:

这是我在更新之前收到的通知。如您所见,它来自稳定频道。

.

有足够的备用内存以防我需要指出这一点。

欢呼任何帮助。

【问题讨论】:

您是否尝试过从 stable 频道下载 android studio 2.1 而不是从 2.0 更新到 2.1? @Bhargav 是的,请参阅编辑。 否 我的意思是不是更新?为什么不从稳定频道单独下载 2.1 版本 @COYG 你能给我看看idea.properties 文件吗? tools.android.com/download/studio/builds/2-1 从这里下载android studio,而不是更新 【参考方案1】:

我终于解决了问题,就在刚才。

在几乎放弃之后,我回到了我正在从事的项目,并注意到当我编译一个正常工作的应用程序时,我收到了 18 个相同错误的实例。此错误与_JAVA_OPTIONS_ -Xmx512m 类似,奇怪的是在我创建的用于设置自定义VM 选项的文件中,此值设置为-Xmx2048m

这让我想到,由于某种原因,这个 VM 选项没有被识别,可能是因为以前的 android 安装文件夹之一中的 studio64.exe.vmoptions 文件。我查看了这些文件夹,并注意到另一个具有此名称的文件!我删除了重新运行该应用程序但仍然遇到相同的错误。

这时我才想起一年多前我创建了一个环境变量,当时我才刚刚开始使用 Java,而我用来帮助掌握它的书建议在文本编辑器中编写所有程序来开始使用 AND 通过 Windows 中的高级选项设置环境变量。嗯,环境变量仍然存在,并且设置为 512m:

任何认为他们可能已经这样做的人的路径Control Panel » System » Advanced » Environment Variables

删除此环境变量并在更新前试水 - 重新启动应用程序,这次没有收到任何错误。停止运行应用程序,第 45 次尝试更新到 2.1.1,很高兴是最后一次。

很抱歉没有在问题中包含缺失的信息,但正如您可能理解的那样,它很容易让任何人忘记。

【讨论】:

【参考方案2】:

根据堆栈跟踪 - 您只需要自定义 VM 选项,如下所示。

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled 
-XX:+HeapDumpOnOutOfMemoryError

您提到的位置是windows操作系统的默认位置。

根据您使用的操作系统,默认情况下(除非您已对其进行自定义),您会在这些文件夹中找到 Android Studio:

在 Windows 中应该在 c:\user\yourname.AndroidStudio2.0

在 Linux 中应该在 /home/yourname/.AndroidStudio2.0

在 Mac 中应该在 ~/Library/Preferences/.AndroidStudio2.0

你还能做的是-

一个。全新安装 Android Studio 2.0。

b.从以前的版本导出设置-(这将为所有配置创建一个 .jar 文件)

c。导入新版本中的设置。

【讨论】:

尝试了您提到的第一步,检查了堆栈跟踪与原始堆栈跟踪的差异,但它完全相同。在我进行全新安装之前会尝试其他一些事情! 也可以设置JAVA_OPTS环境变量来处理java堆大小。将此添加为环境变量,您也可以在 startup.bat 文件中定义配置行。在 startup.bat 文件中添加以下行。设置 JAVA_OPTS=-Xms128m -Xmx4096m 设法修复它,发布答案以显示问题所在!为帮助干杯。【参考方案3】:

删除 .gradle 文件,然后尝试更新到 2.1 可能会起作用

【讨论】:

以上是关于发现无法将 android studio 2.0 更新到 2.1的主要内容,如果未能解决你的问题,请参考以下文章

无法在 android 设备上调试应用程序 - Android Studio 2.0

升级到 Android Studio 2.0 后,我无法在 Android 模拟器中更改屏幕方向

2.0Android Studio编写你的应用

Android studio无法发现nexus 5x解决方法

Visual Studio 2010 不调试 .NET 2.0 代码

android studio 模拟器显示错误