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



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

到目前为止,我

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

我已经尝试过:
1. 更新 java(我有版本 1.8.0_74-b02),但也发生在早期版本(至少 u71)
2. 降级安卓工作室(到最新的稳定版本 - 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.access$100(DeviceMonitor.java:65)
at com.android.ddmlib.DeviceMonitor$1.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版本也无关。它是在多个屏幕上开发的结果。谷歌网站上已经有关于这个问题的讨论。

关于这个问题的谷歌代码讨论

为此,

IntelliJ也遇到了一个问题。

因此,解决方案是停止在外部屏幕上开发。

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

最新更新