Google Play Services 9.2.0在没有Google Play Services的设备中导致意外的崩溃-android.app.Instrumentation.execStartActivity上的NPE

Google Play Services 9.2.0在没有Google Play Services的设备中导致意外的崩溃-android.app.Instrumentation.execStartActivity上的NPE,android,Android,在此之前,我使用以下Google Play Services 8.4.0 compile 'com.google.android.gms:play-services-gcm:8.4.0' compile 'com.google.android.gms:play-services-base:8.4.0' compile 'com.google.android.gms:play-services-analytics:8.4.0' compile 'com.google.android.gms:pla

在此之前,我使用以下Google Play Services 8.4.0

compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services-base:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-drive:8.4.0'
当我在没有安装Google Play服务的设备上运行应用程序时。这是我得到的对话。按下对话框按钮后没有崩溃

但是,在我使用Firebase迁移到Google Play Services 9.2.0之后

compile 'com.google.android.gms:play-services-gcm:9.2.0'
compile 'com.google.android.gms:play-services-base:9.2.0'
compile 'com.google.android.gms:play-services-analytics:9.2.0'
compile 'com.google.android.gms:play-services-drive:9.2.0'
compile 'com.google.android.gms:play-services-auth:9.2.0'
compile 'com.google.firebase:firebase-ads:9.2.0'
我得到一个不同的对话框

我按下对话框按钮后,应用程序崩溃

 java.lang.NullPointerException
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1409)
     at android.app.Activity.startActivityForResult(Activity.java:3351)
     at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
     at android.app.Activity.startActivityForResult(Activity.java:3312)
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871)
     at com.google.android.gms.common.internal.zzi$1.zzasn(Unknown Source)
     at com.google.android.gms.common.internal.zzi.onClick(Unknown Source)
     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     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 services
,则会发生此错误。要解决此问题,请保存应用程序以防崩溃。使用以下步骤

  • 覆盖startActivityForResult(意图、请求代码)
  • 在startActivityForResult中添加超级调用 super.startActivityForResult in try catch and catch the NullPointerException
  • 很简单,现在您可以在此处捕获nullpointerexception并添加 您在catch中的错误处理


    你需要考虑的是,市场上有没有GPS的设备。@ CheokYanCheng,我可以给它一个命令,把它放在<代码> catch <代码>块上。我把更新保存到了92.0,等待修复,现在已经是92.1了。降级到9.0.2是我目前的解决办法
    @Override
    public void startActivityForResult(Intent intent, int requestCode) {
        try {
            super.startActivityForResult(intent, requestCode);
        } catch (Exception e) {
            // fixes here..
        }
    }