在 Ubuntu 15.10 上运行 AndroidStudio 崩溃

在 Ubuntu 15.10 上运行 AndroidStudio 崩溃

现在我面临的问题是无法使用 Ubuntu 15.10 在 AndroidStudio 中进行开发,因为 openjdk-7 和 openjdk-8 都会导致问题。

openjdk-7 问题

使用运行AndroidStudioenv STUDIO_JDK=/usr/lib/jvm/java-7-openjdk-amd64 /opt/android-studio/bin/studio.sh

导致 Xorg 的 VIRT 列top跳转到 25.1G,而我的内存使用情况似乎还可以(使用了 8 GB 中的 3.5 GB)。

然而,这会导致 git-cola 崩溃:

$ git-cola
QNativeImage: Unable to attach to shared memory segment. 

(python:13321): Gdk-WARNING **: shmget failed: error 28 (No space left on device)
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0

[...]

造成这样的视觉体验:

在此处输入图片描述

Arch 的人说这是一个与 openjdk-7 相关的内存泄漏:https://bbs.archlinux.org/viewtopic.php?id=201488

openjdk-8 问题

当使用 openjdk-8 ( env STUDIO_JDK=/usr/lib/jvm/java-8-openjdk-amd64 /opt/android-studio/bin/studio.sh) 启动 AndroidStudio 时,没有程序的VIRT列超过 5GB。

但是 AndroidStudio 在一段时间后会崩溃(通常是在以 XML 或 Java 形式显示自动完成列表时)。

上次崩溃的原因是

(java:14046): GLib-GObject-WARNING **: /build/glib2.0-ajuDY6/glib2.0-2.46.1/./gobject/gsignal.c:3484: signal name 'bounds_changed' is invalid for instance '0x7fd32c1f01c0' of type 'JawImpl_0'

(java:14046): GLib-GObject-WARNING **: /build/glib2.0-ajuDY6/glib2.0-2.46.1/./gobject/gsignal.c:3484: signal name 'bounds_changed' is invalid for instance '0x7fd32c1f01c0' of type 'JawImpl_0'

(java:14046): GLib-GObject-WARNING **: /build/glib2.0-ajuDY6/glib2.0-2.46.1/./gobject/gsignal.c:3484: signal name 'bounds_changed' is invalid for instance '0x7fd32c1f01c0' of type 'JawImpl_0'
Okt 29, 2015 9:29:20 PM com.android.tools.idea.monitor.network.NetworkSampler checkStatsFile
WARNUNG: IOException null in ls /proc/net/xt_qtaguid/stats

  • AndroidStudio 版本:1.4.0 和 1.4.1(测试版)
  • OpenJDK8 版本:1.8.0_66-internal
  • OpenJDK7版本:1.7.0_85

我使用 openjdk-8 运行 AndroidStudio,使用 Ubutnu 15.04 没有任何问题。

有想法吗?

答案1

我不得不使用 Oracle Java 8(正如@wilf 所建议的那样),它现在运行良好。

  • 从 oracle.com 下载并安装到/opt/java8-oracle
  • 通过启动Android Studioenv STUDIO_JDK=/opt/java8-oracle /opt/android-studio/bin/studio.sh

相关内容