【问题标题】:Android 11 : Camera Intent Crashes on Orientation Change After Image CaptureAndroid 11:图像捕获后方向更改时相机 Intent 崩溃
【发布时间】:2021-06-07 10:26:24
【问题描述】:

我正在使用相机意图捕捉图像(纵向 + 横向)并将其显示在 Fragment 的图像视图中。

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

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)

【问题讨论】:

  • 在 onActivityResult() 中,您使用一个变量,该变量在您启动相机之前分配了一个值。但是在使用相机时,您的应用程序在后台并被杀死 - 可能是由于旋转 - 您不应该假设该变量在再次调用 onCreate() 时仍然保持该值。使用前检查是否为空。使用 onSaveInstanceState() 保存这些值。
  • @blackapps:感谢您的建议,但我的问题是为什么它只发生在 Android 11 上?
  • 我遇到了同样的问题。找到任何解决方案
  • 同样的问题.. 找到解决方案了吗?
  • 对我来说同样的问题...任何解决方案?

标签: android camera android-11


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多