Android 12小米设备启动Activity时出现NullPointerException崩溃求助
Android 12小米设备启动Activity频繁崩溃问题
崩溃现象
搭载Android 12系统的小米设备上,所有启动Activity的场景均会触发崩溃,崩溃核心原因是空指针异常——尝试读取android.graphics.Rect.left字段时,该字段所属对象为null。
崩溃日志
Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'int android.graphics.Rect.left' on a null object reference at android.app.ActivityTransitionCoordinator.checkMatrixAgain(ActivityTransitionCoordinator.java:897) at android.app.ActivityTransitionCoordinator.moveSharedElementsToOverlay(ActivityTransitionCoordinator.java:878) at android.app.ExitTransitionCoordinator.startExit(ExitTransitionCoordinator.java:210) at android.app.ActivityTransitionState.startExitOutTransition(ActivityTransitionState.java:393) at android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:5550) at android.app.Activity.startActivityForResult(Activity.java:5526) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675) at com.sample.myApp.MainActivity$4.onClick(MainActivity.java:222)
触发崩溃的代码示例
public void onClick(View v) { Intent editIntent = new Intent(MainActivity.this, EditActivity.class); editIntent.putExtra(EDITING, true); startActivityForResult(editIntent, EDIT_REQUEST); }
解决方案
该问题属于小米Android 12系统的Activity过渡动画底层兼容性bug,可通过以下方式处理:
- 临时禁用过渡动画:在调用
startActivityForResult后添加overridePendingTransition(0, 0),或者在App主题样式中配置<item name="android:windowAnimationStyle">@null</item>,跳过系统过渡动画流程; - 升级系统版本:引导用户将小米设备的Android系统更新至最新版本,厂商通常会在后续补丁中修复此类底层bug;
- 迁移至Activity Result API:由于
startActivityForResult已被官方废弃,建议替换为ActivityResultContractsAPI,同时也能规避部分系统兼容性问题。
内容的提问来源于stack exchange,提问作者tamtom
相关产品推荐
相关产品推荐

