在Android Studio上,makeGooglePlayServicesAvailable在真实设备上导致应用崩溃

3

我正在一个真实设备上运行Android 4.2.2上的makeGooglePlayServicesAvailable,但它会崩溃,并显示下面的堆栈跟踪。我不知道这是否是一个makeGooglePlayServicesAvailable问题还是来自错误消息的其他问题?在具有更高Android操作系统的模拟器上,相同的代码可以正常工作。

public class EventsActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


        GoogleApiAvailability googleApiAvailability =  GoogleApiAvailability.getInstance();

        int success = googleApiAvailability.isGooglePlayServicesAvailable(this);

        if(success != ConnectionResult.SUCCESS)
        {
            googleApiAvailability.makeGooglePlayServicesAvailable(this);
        }

        super.onCreate(savedInstanceState);
        setContentView(R.layout.drawer);
    }

错误
Process: com.exposure, PID: 5713
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.EventsActivity}: java.lang.IllegalStateException: Activity has been destroyed
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2334)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
                  at android.app.ActivityThread.access$900(ActivityThread.java:169)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:146)
                  at android.app.ActivityThread.main(ActivityThread.java:5487)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:515)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                  at dalvik.system.NativeStart.main(Native Method)
               Caused by: java.lang.IllegalStateException: Activity has been destroyed
                  at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1560)
                  at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:696)
                  at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:667)
                  at com.google.android.gms.internal.zzabm.zza(Unknown Source)
                  at com.google.android.gms.internal.zzaaw.zzc(Unknown Source)
                  at com.google.android.gms.internal.zzaaw.zzs(Unknown Source)
                  at com.google.android.gms.internal.zzabb.zzu(Unknown Source)
                  at com.google.android.gms.common.GoogleApiAvailability.makeGooglePlayServicesAvailable(Unknown Source)

问题是你正在从一个已销毁的活动中调用它。除此之外,如果没有代码,我们无法提供更多信息。 - Gabe Sechan
添加了代码,就像我说的那样,它在启动时运行,并不会破坏任何东西。 - Mike Flynn
尝试在super.onCreate()之后调用它。在此之前,Activity并没有真正初始化。 - Gabe Sechan
哈,就是这样,不知道为什么在我的模拟器上无法工作,但现在看起来可以了。 - Mike Flynn
1个回答

1
在调用 super.onCreate() 之后使用它解决了该问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接