【发布时间】:2021-06-07 10:26:24
【问题描述】:
我正在使用相机意图捕捉图像(纵向 + 横向)并将其显示在 Fragment 的图像视图中。
我已按照以下链接中的所有说明进行操作,
https://developer.android.com/training/camera/photobasics
代码在 Android 10 之前的设备上运行良好,但不适用于 Android 11 设备(尤其是三星手机)。
我在 Stack Overflow 上尝试了所有可能的解决方案。
应用程序仅在以下情况下崩溃,
复制步骤,
- 用户启动相机拍摄图像
- 旋转手机以横向模式拍摄图像。
- 用户成功捕获图像并单击对勾或确定。 如果图像是在纵向模式下拍摄的,那么应用程序不会崩溃。
我收到以下错误,(在 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