草庐IT

android - Google Play Services 9.2.0 导致设备在没有 Google Play Services 的情况下意外崩溃 - NPE at android.app.Instrumentation.execStartActivity

coder 2023-12-17 原文

以前,我使用以下 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,则会发生此错误。要变通保存应用程序崩溃。使用以下步骤

  1. Override startActivityForResult(intent, requestcode)
  2. In startActivityForResult add super call super.startActivityForResult in try catch and catch the NullPointerException

Easy its done Now you can trap the nullpointerexception here and add your error handling in catch

@Override
public void startActivityForResult(Intent intent, int requestCode) {
    try {
        super.startActivityForResult(intent, requestCode);
    } catch (Exception e) {
        // fixes here..
    }
}

关于android - Google Play Services 9.2.0 导致设备在没有 Google Play Services 的情况下意外崩溃 - NPE at android.app.Instrumentation.execStartActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166820/

有关android - Google Play Services 9.2.0 导致设备在没有 Google Play Services 的情况下意外崩溃 - NPE at android.app.Instrumentation.execStartActivity的更多相关文章

随机推荐