我的 Android 应用程序在发布到 Playstore 后由于新的闪屏 api 实现而崩溃。根据 crashlytics,一些用户在闪屏问题中遇到了崩溃
我已经在 Android 设备 API 级别版本 12、13、14 闪屏中进行了测试,运行良好,但无法重现崩溃。
崩溃详情: 请提出任何解决方案
致命异常:java.lang.NullpointerException
尝试在空对象引用上调用虚拟方法“android.view.View android.view.window.peekDecorview()”
android.app.ActivityThread.handleAttachSplashScreenView(ActivityThread.java:4634)
android.app.servertransaction.TransferSplashScreenViewStateItem.execute(TransferSplashScreenViewStateItem.java:40)
android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
android.os.Handler.dispatchMessage(Handler.java:106)
android.os.Looper.loopOnce(Looper.java:230)
android.os.Loop(Looper.java:319)
android.app.ActivityThread.main(ActivityThread.java:8919)
Java.lang.reflect.Method.invoke(Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
如果没有更多有关哪些设备的信息,很难判断 正在发生崩溃以及他们的 Android 版本。
但是您似乎在向新的 SplashScreen Api 迁移时遇到了问题。 您可以在此处查看完整说明:https://developer.android.com/develop/ui/views/launch/splash-screen/migrate
根据Window类定义: https://developer.android.com/reference/android/view/Window
peekDecorView() 返回窗口当前的 DecorView 或 null。 DecorView 是保存窗口背景的内容,在您的情况下是 SplashScreen 窗口。所以我猜你的一些用户在设置 Drawable Icon 背景时遇到了麻烦,这导致你的 DecorView 变成空。