25

我不断收到一些用户的以下异常:

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)

我在这里发现了一个类似的问题,但自 4 月以来就没有处理过。我所知道的是它是在三星 Galaxy Y (GT-S5360) 上复制的,我使用的是 Google Maps Android API v2。

你知道我该如何解决这个问题吗?

4

2 回答 2

17

我有同样的错误,我也使用 Google Maps API。它似乎发生在所有 Android 版本和手机上。仅举几例:

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) 

当我在某处读到时,解决方案是:

如果您的模拟器或设备未安装 Google Play 服务,则可能会出现上述问题。我没有完美的解决方案,但我想出了一些解决方法来避免您的应用程序崩溃。在这种情况下,您必须遵循简单的步骤

  1. 覆盖 startActivityForResult(intent, requestcode)
  2. 在 startActivityForResult 添加超级调用 super.startActivityForResult 尝试捕获并捕获 NullPointerException

轻松完成现在您可以在此处捕获 nullpointerexception 并将错误处理添加到 catch

@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
    }
}
于 2014-01-03T14:33:53.737 回答
0

在我的情况下,Instrumentation.java 崩溃

第 1581 行,

android.util.SeempLog.record_str(377, intent.toString());

意图为空,然后是 NPE

不知道如何解决这个问题

于 2019-06-18T20:36:48.360 回答