Android 8.0接收通知后会手机崩溃,闪屏,恢复出厂设置的解决方法
2023-09-27 14:27:47 时间
最近用极光推送,发现有新的SDK,就试试用.我的手机是Nexus 6P,原生8.0,结果一更新,手机就不断闪屏,系统崩溃,说要恢复出厂设置了
幸亏重启前截停了.然后求助极光推送,可得到的答复不是SDK的问题,碰巧也有人碰到这问题,但他说他的解决方法是在drawable-xxxx各分辨率下加上jpush_notification_icon.png就可以避免了.可我试了不行.郁闷啊.一天重启几十遍.也跟着官方的SDK那样配置,一样还是不行.
主要出的系统log(不是app的log)在这里
- <span style="font-size:12px;">E/AndroidRuntime: FATAL EXCEPTION: main
- Process: com.android.systemui, PID: 10388
- java.lang.IllegalArgumentException: width and height must be > 0
- at android.graphics.Bitmap.createBitmap(Bitmap.java:1001)
- at android.graphics.Bitmap.createBitmap(Bitmap.java:968)
- at android.graphics.Bitmap.createBitmap(Bitmap.java:918)
- at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
- at android.graphics.drawable.AdaptiveIconDrawable.updateMaskBoundsInternal(AdaptiveIconDrawable.java:333)
- at android.graphics.drawable.AdaptiveIconDrawable.updateLayerBounds(AdaptiveIconDrawable.java:295)
- at android.graphics.drawable.AdaptiveIconDrawable.onStateChange(AdaptiveIconDrawable.java:782)
- at android.graphics.drawable.Drawable.setState(Drawable.java:775)
- at android.widget.ImageView.drawableStateChanged(ImageView.java:1305)
- at android.view.View.refreshDrawableState(View.java:20012)
- at android.view.View.dispatchAttachedToWindow(View.java:17409)
- at android.view.ViewGroup.addViewInner(ViewGroup.java:4955)
- at android.view.ViewGroup.addView(ViewGroup.java:4746)
- at com.android.systemui.statusbar.phone.NotificationIconAreaController.updateIconsForLayout(NotificationIconAreaController.java:247)
- at com.android.systemui.statusbar.phone.NotificationIconAreaController.updateNotificationIcons(NotificationIconAreaController.java:155)
- at com.android.systemui.statusbar.phone.StatusBar.updateNotificationShade(StatusBar.java:1956)
- at com.android.systemui.statusbar.phone.StatusBar.updateNotifications(StatusBar.java:2136)
- at com.android.systemui.statusbar.phone.StatusBar.addNotificationViews(StatusBar.java:6702)
- at com.android.systemui.statusbar.phone.StatusBar.addEntry(StatusBar.java:1627)
- at com.android.systemui.statusbar.phone.StatusBar.onAsyncInflationFinished(StatusBar.java:1644)
- at com.android.systemui.statusbar.notification.NotificationInflater$AsyncInflationTask.onAsyncInflationFinished(NotificationInflater.java:641)
- at com.android.systemui.statusbar.notification.NotificationInflater.finishIfDone(NotificationInflater.java:460)
- at com.android.systemui.statusbar.notification.NotificationInflater.-wrap0(Unknown Source:0)
- at com.android.systemui.statusbar.notification.NotificationInflater$6.onViewApplied(NotificationInflater.java:343)
- at android.widget.RemoteViews$AsyncApplyTask.onPostExecute(RemoteViews.java:3421)
- at android.widget.RemoteViews$AsyncApplyTask.onPostExecute(RemoteViews.java:3401)
- at android.os.AsyncTask.finish(AsyncTask.java:695)
- at android.os.AsyncTask.-wrap1(Unknown Source:0)
- at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
- at android.os.Handler.dispatchMessage(Handler.java:105)
- at android.os.Looper.loop(Looper.java:164)
- at android.app.ActivityThread.main(ActivityThread.java:6541)
- at java.lang.reflect.Method.invoke(Native Method)
- at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)</span>
后来终于有官方的技术人员解答了这个问题. 原来是系统的bug, 原贴在这里:
https://blog.pusher.com/upgrade-app-android-oreo-avoid-factory-reset/
如果你也有这个问题,你看看你新建的项目的资源文件目录里是不是有个mipmap-anydpi-v26的目录?里面有icon的xml文件? 处理的方法有三种,要么target SDK低于26或者不用这个icon,把这目录里面的icon的xml删掉.或者在manifest里加meta-data,
- <span style="font-size:12px;"><meta-data
- android:name="com.google.firebase.messaging.default_notification_icon"
- android:resource="@drawable/your_non_adaptive_drawable" /></span>
相关文章
- android studio 4.01默认使用gradle版本及其工程本地配置gradle方法
- Android判断用户是平板还是手机的方法
- Android 获取Activity当前view
- Android 获得各处图片的方法
- [专栏目录]-Android专栏目录
- android假设重写onDraw实现一个相似TextView能够显示表情和链接的控件(二)
- Android源代码下载方法具体解释
- android_浅析canvas的save()和restore()方法
- 关于Android方法数量限制的问题
- 无法访问developer.android.com解决方法
- android 应用对内存是如何限制的?我们应该如何合理使用内存?如何限制的?
- Java Android(安卓)APK中Java代码查看方法(Apktool,dex2jar,jd-gui)
- Android实现不重复启动APP的方法
- Android中“分享”功能的实现
- Android 5.X与Android4.X版本机器人动画的区别以及制作动画的方法
- 添加 Flutter 到 Android Fragment
- Android xml 格式 随笔
- android MultiDex multidex原理下超出方法数的限制问题(三)
- 【我的Android进阶之旅】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- 我的Android进阶之旅------>关于使用Android Studio替换App的launcher图标之后仍然显示默认的ic_launcher图标的解决方法