微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MIUI 11/12主题切换导致LifeCycleException,ClassCastException

如何解决MIUI 11/12主题切换导致LifeCycleException,ClassCastException

由于Miui 11/12使用其自己的暗模式自定义实现,因此使用以下代码会导致ClassCastException 和活动生命周期异常,因为DefaultNightMode和LocalNightMode始终未指定,即-100而不是0或1。

如果有人针对Miui 11/12专门针对小米设备构建了解决方法。请帮我解决这个问题。

使用的代码

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
this.recreate();

导致的错误

2020-10-25 07:04:43.626 9167-9167/com.xxxx.xxxxxx E/ActivityInjector: get life cycle exception
    java.lang.classCastException: android.os.BinderProxy cannot be cast to android.app.servertransaction.ClientTransaction

解决方法

我自己解决了。经过一个星期的摆弄后,我做到了。

方法如下:

-而不是为每个Activity设置android:forceDarkAllowed =“ false”。

-只需进入values.xml并将其放置在您的AppTheme中

        <item name="android:forceDarkAllowed">false</item>

它将要求您创建一个valuesv29.xml。创建它,然后从所有活动中删除forceDarkAllowed =“ false”。

欢迎。 :)

,

同样在 jetpack compose 中,只需将行添加到 theme.xml

<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>

这个目标 api 对我来说很好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。