我最近注意到,当用户试图在Android 12上设置新推出的“主题图标”功能时,我的实时壁纸应用程序正在崩溃。这个新功能从用户当前的静态壁纸中计算出颜色的调色板,并使用这个调色板对其他一些应用程序图标(你设计的新“素材”的一个功能)进行着色。但是,由于某种原因,当它在活动壁纸上运行时,它用以下日志使应用程序崩溃:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference
at android.os.Parcel.createExceptionOrNull(Parcel.java:2443)
at android.os.Parcel.createException(Parcel.java:2421)
at android.os.Parcel.readException(Parcel.java:2404)
at android.os.Parcel.readException(Parcel.java:2346)
at android.service.wallpaper.IWallpaperConnection$Stub$Proxy.onWallpaperColorsChanged(IWallpaperConnection.java:298)
at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage(WallpaperService.java:2586)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:44)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8582)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)
Caused by android.os.RemoteException: Remote stack trace:
at com.samsung.server.wallpaper.LegibilityColor.convertColors(LegibilityColor.java:418)
at com.android.server.wallpaper.WallpaperManagerService$WallpaperConnection.onWallpaperColorsChanged(WallpaperManagerService.java:2169)
at android.service.wallpaper.IWallpaperConnection$Stub.onTransact(IWallpaperConnection.java:158)
at android.os.Binder.execTransactInternal(Binder.java:1215)
at android.os.Binder.execTransact(Binder.java:1179)此时此刻,我只能在三星Galaxy S21 / S21超级手机上观察到这起事故,但随着用户将其系统升级到安卓12,更多的手机也会出现这种情况。
目前,我无法重现这一崩溃,因为我没有一个Galaxy,而且Android模拟器仍然没有“主题图标”选项(可能是因为这个功能目前仍处于beta版)。
有没有人知道如何解决这个灾难性的问题?任何帮助都是非常感谢的!
更新11月18日:i能够在Android模拟器上测试新的“主题图标”功能(在新推出的"SV2“版本上)。这个版本确实有问题,但我无法复制类似的崩溃。这让我觉得这次坠机是三星手机独有的。
我试着在“”网站上从公开可用的手机上测试一些Galaxy设备,但它们实现了Android12的测试版,而在这个版本中,主题图标功能是不可用的。
我想生成一个完整的崩溃报告(日志+视频)发送给三星,但我仍然找不到安装了Android12的GalaxyS21(Android12系统更新于11月15日开始,用于GalaxyS21手机)。与此同时,坠机报告正在爆炸,因为更多的用户正在更新他们的手机到安卓12...Such真可惜!
发布于 2021-12-01 15:35:18
找到解决办法了。
文件名: wallpaper.xml
是:
<wallpaper bla bla bla
android:thumbnail="@mipmap/ic_launcher"
/>改为:
<wallpaper bla bla bla
android:thumbnail="@drawable/thumbnail"
/>将应用程序图标复制到:drawable/umbnail.png
从@Redwarp更新:您应该使用位图,而不是矢量图像。
应用程序更新后:

发布于 2021-11-30 22:05:01
有一段时间,我正在寻找一个类似的问题,在评论流行的现场壁纸。我发现只有一个应用程序有类似的评论。我今天更新了手机。我所有的现场壁纸都像预期的那样停止工作了。然后我安装了“地球与月亮”,这个应用程序运行得很好。这意味着我们做错了什么,或者相反,我们没有做什么:)在不久的将来,我将开始调查这个问题。
发布于 2021-12-07 22:23:23
我的应用程序的一个用户在三星S21上告诉我,三星的一个新操作系统更新(SP1A.210812.016.G991BXXU3BUKG)甚至在我实现@Aleksey的修复之前就为他们修复了这个问题。很高兴看到三星在处理事情。
尽管如此,我仍然支持自己实现修复,以防有其他地方需要它。
https://stackoverflow.com/questions/69982353
复制相似问题