问题描述
如果未更新设备的Google Play服务版本,则在我的应用上使用以下代码会导致应用崩溃。
GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
status = googleAPI.isGooglePlayServicesAvailable(mActivity);
它在装有Android OS 4.2.2版和Google Play服务3.1.58版(我已故意降级以处理Google Play服务可用性检查)的设备上崩溃。
崩溃日志如下所示,
致命异常:主要
java.lang.RuntimeException:无法启动活动ComponentInfo {com.companyname / o.Dt}:android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249)上的java.lang.NullPointerException android.app.ActivityThread.access $ 700(ActivityThread.java:154)的ActivityThread.java:2299)android.os.Handler.dispatchMessageMes??sage(Handler.android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1284) java:99)位于android.os.Looper.loop(Looper.java:137)位于android.app.ActivityThread.main(ActivityThread.java:5306)位于java.lang.reflect.Method.invokeNative(原生方法) .lang.reflect.Method.invoke(Method.java:511)位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102)位于com.android.internal.os.ZygoteInit.main(ZygoteInit .java:869)在dalvik.system.NativeStart.main(本机方法)由以下原因引起:java.lang.NullPointerException在o.Lf。(:191)在o.Lf.ˊ(:237)在o.Dt.onCreate (:487),位于android.app.Activity.p android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)的erformCreate(Activity.java:5255)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213) :2299),位于android.app.ActivityThread.access $ 700(ActivityThread.java:154),位于android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1284),位于android.os.Handler.dispatchMessage(Handler.java:99 ),位于java.lang.java.lang.reflect.Method.invokeNative(Native Method),位于android.app.ActivityThread.main(ActivityThread.java:5306)的android.os.Looper.loop(Looper.java:137)处。 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102)上com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 869)在dalvik.system.NativeStart.main(本机方法)
NullPointer指向某个框架类,即使其名称被混淆。 因此,任何帮助将不胜感激。
1楼
也许错误不在您的代码中。 按照程序包名称进行操作,该错误似乎来自可公开访问的应用