2013-07-09 23 views
23

continuo a ricevere l'eccezione muggito da alcuni utenti:Android NullPointerException in Instrumentation.execStartActivity

java.lang.NullPointerException 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1414) 
    at android.app.Activity.startActivityForResult(Activity.java:2880) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817) 
    at android.app.Activity.startActivity(Activity.java:2986) 
    at com.google.android.gms.internal.bb$5.onClick(Unknown Source) 
    at android.view.View.performClick(View.java:2535) 
    at android.view.View$PerformClick.run(View.java:9130) 
    at android.os.Handler.handleCallback(Handler.java:618) 
    at android.os.Handler.dispatchMessage(Handler.java:123) 
    at android.os.Looper.loop(SourceFile:351) 
    at android.app.ActivityThread.main(ActivityThread.java:3826) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:538) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727) 
    at dalvik.system.NativeStart.main(Native Method) 

ho trovato un problema simile here ma non è preso cura di da aprile. Tutto quello che so è che è stato riprodotto su un Samsung Galaxy Y (GT-S5360) e sto usando Google Maps Android API v2.

Hai qualche idea di come posso risolvere il problema?

+0

hai trovato qualcosa su questo problema? – kord

+0

purtroppo non – Adrian

+0

Problema simile trovato su un Samsung GT I9500 (Galaxy S4) ma sulla linea 1416. È interessante notare che utilizzo anche Google Maps API v2 e ho ricevuto vari errori relativi alle mappe. – TheIT

risposta

16

Ho lo stesso errore, uso anche l'API di Google Maps. Sembra che accada su tutte le versioni e telefoni Android. Solo per citare alcuni:

AN10DG3, GT-I8190, F815, GT-I9300, GOOPHONE, HTC One, KFTT, MID8127, KFAPWI, AN10DG3

java.lang.NullPointerException 
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1409) 
at android.app.Activity.startActivityForResult(Activity.java:3351) 
at android.app.Activity.startActivityForResult(Activity.java:3312) 
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839) 
at android.app.Activity.startActivity(Activity.java:3522) 
at android.app.Activity.startActivity(Activity.java:3490) 
at com.google.android.gms.dynamic.a$5.onClick(Unknown Source) 
at android.view.View.performClick(View.java:4084) 
at android.view.View$PerformClick.run(View.java:16966) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4745) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 

come ho letto da qualche parte, la soluzione è:

Il problema sopra riportato può verificarsi se si dispone di un emulatore o di un dispositivo in cui i servizi di riproduzione di Google non sono installati. Non ho una soluzione perfetta, ma ho capito un po 'di lavoro per salvare la tua app da crash. In questo caso è necessario seguire semplici passi

  1. Override startSubActivity (intento, requestcode)
  2. In startSubActivity Aggiungere Super super.startActivityForResult chiamata a provare cattura e prendere il NullPointerException

Facile il suo fare ora è possibile intercettare il NullPointerException qui e aggiungere il gestione degli errori nella cattura

@Override 
public void startActivityForResult(Intent intent, int requestCode) { 
    try { 
     super.startActivityForResult(intent, requestCode); 
    } catch (Exception e) { 
     // fixes Google Maps bug: http://stackoverflow.com/a/20905954/2075875 
    } 
} 
+0

Buona idea, grazie – Adrian

+0

Quale classe startActivityForResult deve essere sovrascritta? – JY2k

+0

Quello che estende Activity o FragmentActivity e si arresta in modo anomalo. – Malachiasz