【发布时间】:2018-09-23 02:53:03
【问题描述】:
我的 android 应用程序有时会在应用程序启动时随机崩溃,当我检查我的分析报告时,我得到的异常是:
{第三方工具}需要 android.permission.CAMERA,但不是 在您的 AndroidManifest.xml 文件中找到。
PermissionsHandler.CheckPermissions(Android.Content.Context 上下文, System.String 权限,System.Boolean throwOnError)
PermissionsHandler.CheckCameraPermissions (Android.Content.Context 上下文,System.Boolean throwOnError)CameraController.SetupCamera () CameraAnalyzer.SetupCamera()
在用户导航到某个页面之前,我用于条形码的工具甚至不使用相机服务。我只是觉得可能在运行时它正在寻找相机权限,有时应用程序清单尚未准备好或未加载,因此应用程序假定相机权限未包含在 appmanifest 中。
我的问题是
- AndoridManifest 是在应用程序开始时进行,还是我必须对应用程序进行一些更改以确保它等到清单准备好所有权限设置?
- 是否有人遇到过类似的错误或可以提出任何解决方案?
更新: ZXing是需要摄像头服务的第三方工具。但是,一旦应用程序启动,就会在某些页面中调用这个三十方 API,并且在这些页面上它会请求摄像头权限,但应用程序在启动时崩溃,但有以下例外: 例外:
PermissionsHandler.CheckPermissions (Android.Content.Context context, System.String permission, System.Boolean throwOnError)
System.UnauthorizedAccessException: ZXing.Net.Mobile requires: android.permission.CAMERA, but was not found in your AndroidManifest.xml file.
PermissionsHandler.CheckPermissions (Android.Content.Context context, System.String permission, System.Boolean throwOnError)
PermissionsHandler.CheckCameraPermissions (Android.Content.Context context, System.Boolean throwOnError)
CameraController.SetupCamera ()
CameraAnalyzer.SetupCamera ()
ZXingSurfaceView+<SurfaceCreated>d__3.MoveNext ()
ExceptionDispatchInfo.Throw ()
AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0 (System.Object state)
SyncContext+<>c__DisplayClass2_0.<Post>b__0 ()
Thread+RunnableImplementor.Run ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this
【问题讨论】:
-
你的应用的 minSDK 是什么?
-
在你的java代码中添加运行时权限怎么样?
-
应用程序崩溃的 API 级别是什么?您没有为 Marsh+ 请求适当的运行时权限吗?
-
@SushiHangover App 主要在 API 24 上崩溃。我在 Android.manifest 上选择了所有权限,并在使用相机之前使用请求权限访问。但是应用程序在启动应用程序期间甚至在进入我们请求权限访问的页面之前就崩溃了
-
@RafaelaLourenço 最低 API 19 - 最高 API-24。
标签: android xamarin xamarin.android android-camera android-manifest