2016-05-04 13 views
8

Non sono stato in grado di eseguire alcuna versione di Android Studio 2.x. si arresta apparentemente in modo casuale con questa stessa eccezione dopo < 1min semplicemente navigare attraverso file in un progetto:Android Studio 2.0+ si blocca su OS X

Exception Name: JavaNativeException 
Description: java.lang.NullPointerException 
    at sun.lwawt.macosx.CAccessibility.getAccessibleIndexInParent(CAccessibility.java:287) 

User Info: (null) 

0 CoreFoundation      0x00007fff94a9e4f2 __exceptionPreprocess + 178 
1 libobjc.A.dylib      0x00007fff88d51f7e objc_exception_throw + 48 
2 CoreFoundation      0x00007fff94a9e439 -[NSException raise] + 9 
3 JavaNativeFoundation    0x000000011be9251f JNFCallStaticIntMethod + 236 
4 libawt_lwawt.dylib     0x000000011d7c8deb +[JavaComponentAccessibility createWithAccessible:withEnv:withView:] + 76 
5 libawt_lwawt.dylib     0x000000011d7c930b -[JavaComponentAccessibility accessibilityFocusedUIElement] + 194 
6 libawt_lwawt.dylib     0x000000011d79e4f6 -[AWTView accessibilityFocusedUIElement] + 156 
7 AppKit        0x00007fff98c44d37 -[NSWindow(NSWindowAccessibility) accessibilityFocusedUIElement] + 118 
8 libawt_lwawt.dylib     0x000000011d7c9069 +[JavaComponentAccessibility postFocusChanged:] + 96 
9 Foundation       0x00007fff9427af5e __NSThreadPerformPerform + 279 
10 CoreFoundation      0x00007fff94a33881 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
11 CoreFoundation      0x00007fff94a12fbc __CFRunLoopDoSources0 + 556 
12 CoreFoundation      0x00007fff94a124df __CFRunLoopRun + 927 
13 CoreFoundation      0x00007fff94a11ed8 CFRunLoopRunSpecific + 296 
14 HIToolbox       0x00007fff963fe935 RunCurrentEventLoopInMode + 235 
15 HIToolbox       0x00007fff963fe76f ReceiveNextEventCommon + 432 
16 HIToolbox       0x00007fff963fe5af _BlockUntilNextEventMatchingListInModeWithFilter + 71 
17 AppKit        0x00007fff98463efa _DPSNextEvent + 1067 
18 AppKit        0x00007fff9846332a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454 
19 libosxapp.dylib      0x000000011d8503aa -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124 
20 AppKit        0x00007fff98457e84 -[NSApplication run] + 682 
21 libosxapp.dylib      0x000000011d85014d +[NSApplicationAWT runAWTLoopWithApp:] + 156 
22 libawt_lwawt.dylib     0x000000011d7dd4b3 -[AWTStarter starter:] + 905 
23 Foundation       0x00007fff9427af5e __NSThreadPerformPerform + 279 
24 CoreFoundation      0x00007fff94a33881 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
25 CoreFoundation      0x00007fff94a12fbc __CFRunLoopDoSources0 + 556 
26 CoreFoundation      0x00007fff94a124df __CFRunLoopRun + 927 
27 CoreFoundation      0x00007fff94a11ed8 CFRunLoopRunSpecific + 296 
28 studio        0x00000001000012f3 main + 357 
29 studio        0x000000010000116c start + 52 
30 ???         0x0000000000000001 0x0 + 1 

sto con OS X 10.11.4 con Java versione 1.8.0_92.

Avevo visto altri riferimenti a questo problema nel contesto delle operazioni di trascinamento del rilascio &, ma la soluzione accettata per l'aggiornamento della versione di JDK non sembra aver risolto il problema.

FWIW sono in grado di eseguire Studio 1.5 senza riscontrare questo problema.

+0

sembra che tu debba presentare una segnalazione di errore. –

+4

Lo stesso qui. L'ho ottenuto da quando ho aggiornato la versione beta pubblica di MacOS Sierra. – Steffen

+0

* AGGIORNAMENTO * - non si è verificato un nuovo arresto anomalo dopo l'aggiornamento a Java 1.8.0_101. in precedenza si sarebbe arrestato in pochi minuti di utilizzo casuale (apertura/chiusura di file, navigazione nelle cartelle). è stato in esecuzione per circa 30 minuti ora senza incidenti. – hsl

risposta

0

Rispondendo ad una domanda del perché accade in realtà, ma la source ha questo:

public static int getAccessibleIndexInParent(final Accessible a, final Component c) { 
     if (a == null) return 0; 

     return invokeAndWait(new Callable<Integer>() { 
      public Integer call() throws Exception { 
       final AccessibleContext ac = a.getAccessibleContext(); 
       if (ac == null) return null; 
       return ac.getAccessibleIndexInParent(); 
      } 
     }, c); 
    } 

Come si può vedere, le Callable restituisce NULL in alcune situazioni, che va bene per un Integer, ma si ottiene un NPE non appena viene rimosso per restituire int. Probabilmente dovrebbero controllare null e restituire 0.