首页 > 解决方案 > Android 11:图像捕获后方向更改时相机 Intent 崩溃

问题描述

我正在使用相机意图捕捉图像(人像 + 风景)并将其显示在片段的图像视图中。

我已按照以下链接中的所有说明进行操作,

https://developer.android.com/training/camera/photobasics

该代码在 Android 10 之前的设备上运行良好,但不适用于 Android 11 设备(尤其是三星手机)

我在 Stack Overflow 上尝试了所有可能的解决方案。

应用程序仅在以下情况下崩溃,

重现步骤,

  1. 用户启动相机以捕捉图像
  2. 旋转手机以横向模式拍摄图像。
  3. 用户成功捕获图像并单击对勾或确定。 如果在纵向模式下捕获图像,则应用程序不会崩溃。

我收到以下错误,(在 Crashlytics 上报告)

Caused by java.lang.NullPointerException
       at java.io.File.<init>(File.java:283)
       at com.kyc.views.PDFragment.onActivityResult(PDFragment.java:442)
       at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)

Fatal Exception: java.lang.RuntimeException: Unable to resume activity {com.kyc/com.kyc.main.MainActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65660, result=-1, data=null} to activity {com.kyc/com.kyc.main.MainActivity}: java.lang.NullPointerException
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4852)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4885)
       at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)

标签: androidcameraandroid-11

解决方案


android:configChanges="orientation"通过在清单中添加您的活动来处理“配置更改” 。当屏幕旋转回纵向时,问题是在您返回应用程序后旋转。有些手机可以处理这个,有些不能。


推荐阅读