MIUI 11/12 Theme Switch ส่งผลให้ LifeCycleException, ClassCastException

Oct 27 2020

เนื่องจาก MIUI 11/12 ใช้การปรับใช้โหมดมืดแบบกำหนดเองการใช้โค้ดด้านล่างส่งผลให้ ClassCastException และ Activity Life Cycle Exception เป็น DefaultNightMode และ LocalNightMode เสมอ Unspecified เช่น -100 แทนที่จะเป็น 0 หรือ 1

หากใครได้สร้างวิธีแก้ปัญหาสำหรับอุปกรณ์ Xiaomi โดยเฉพาะสำหรับ 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

คำตอบ

1 Ayush Oct 31 2020 at 10:56

ฉันแก้มันด้วยตัวเอง หลังจากเล่นกับมันมาหนึ่งสัปดาห์ฉันก็ทำมัน ..

นี่คือวิธี:

- แทนที่จะตั้งค่า android: forceDarkAllowed = "false" สำหรับแต่ละกิจกรรม

- เพียงแค่ goto values.xml และวางไว้ใน AppTheme ของคุณ

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

จะขอให้คุณสร้าง valuesv29.xml สร้างและลบ forceDarkAllowed = "false" ออกจากกิจกรรมทั้งหมด

ยินดีต้อนรับ. :)