You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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已被官方废弃,建议替换为ActivityResultContracts API,同时也能规避部分系统兼容性问题。

内容的提问来源于stack exchange,提问作者tamtom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:54:33