Android Studio 在 Mac OS El Capitan 上随机崩溃,当 ADB 初始化时

Android Studio crashes on Mac OS El Capitan randomly, when ADB is initialized

我正在使用最新版本的 Android Studio (2.0.0-beta5),我观察到非常奇怪的行为。如果我从 Android Studio 中打开 ADB(无论出于什么目的 - 查看日志、调试或安装应用程序)Android Studio 反复崩溃。

到目前为止,我只找到了一个解决该问题的方法,这非常令人不满意:使 AS 无法本地化 adb(我通过将 adb 从平台工具移动到任何其他本地化来实现这一点。

我已经试过了:
1. 更新 java(我有 1.8 版。0_74-b02)但也发生在早期版本上(至少 u71)
2. 降级 Android Studio(到最新的稳定版本 - 1.5.0)
3. 运行 不同的设备连接到 adb。到目前为止还没有连接任何设备。

这是每次崩溃前发生的日志(来自 ~/Library/Logs/AndroidStudioXX.X/

2016-02-18 16:02:07,374 [1025648]   INFO -                 #com.android.ddmlib - Opening a debugger listener at port 8602 for client with pid 1789 
2016-02-18 16:02:07,374 [1025648]   WARN -            #com.android.ddmlib - Broken pipe
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69)
at sun.nio.ch.IOUtil.write(IOUtil.java:40)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336)
at com.android.ddmlib.JdwpPacket.write(JdwpPacket.java:179)
at com.android.ddmlib.Client.send(Client.java:654)
at com.android.ddmlib.jdwp.JdwpAgent.send(JdwpAgent.java:92)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:349)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:517)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:573)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:545)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:507)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:403)
at com.android.ddmlib.DeviceMonitor.access0(DeviceMonitor.java:65)
at com.android.ddmlib.DeviceMonitor.run(DeviceMonitor.java:326)

这是我发现它可能与 adb 连接的地方,因此决定禁用它。

感谢任何帮助,因为这让我的工作变得非常困难。

编辑:

全新安装最新的稳定版(1.5.1) 后仍然出现错误。不同的是,我看不到任何日志,似乎其中有一个黑洞,在崩溃前几分钟开始。粘贴崩溃后直接显示的MacOs问题报告。

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000020
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0x20:
--> 
    __TEXT                 0000000100000000-000000010000b000 [   44K]     r-x/rwx SM=COW  /Applications/Android Studio.app/Contents/MacOS/studio

Application Specific Information:
Java information:
Exception type: Bus Error (0xa) at pc=7fffa174f103

 Java VM: Java HotSpot(TM) 64-Bit Server VM (20.65-b04-468 mixed mode      macosx-amd64)

Current thread (1070d5800):  JavaThread "AWT-AppKit" daemon [_thread_in_native, id=2116415488, stack(7fff5f400000,7fff5fc00000)]
Stack: [7fff5f400000,7fff5fc00000]

我还尝试将自己限制在一个 AS 实例上并禁用所有其他可能使用 adb 的应用程序(如 Vysor)。没有结果...

看来我终于找到了问题的根本原因...它与 adb、java 版本或 AS 版本无关。它是在多个屏幕上开发的结果。 google 网站上已经对此进行了讨论..

Google code discussion on this issue

为此还为 IntelliJ 打开了一个 issue

所以解决办法就是停止在外屏上开发。

编辑:更新到 10.11.5 后一切正常。