当前位置: 首页 > 知识库问答 >
问题:

当我在android 7.0中尝试打开相机时,应用程序崩溃了

宓跃
2023-03-14

在我的应用程序中,有一个使用相机捕捉图像的工具。在Android6之前的所有版本中,它都能完美地工作,但在Android7.0版本中,它让我的应用程序崩溃了。

<uses-permission android:name="android.permission.CAMERA" />

添加的权限

if (ContextCompat.checkSelfPermission(AddFamilyMemberActivity.this,
                android.Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(AddFamilyMemberActivity.this,
                    new String[]{android.Manifest.permission.CAMERA},
                    1);
        } else {
            sendToExternalApp();
        }

权限侦听器

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == 1 && permissions[0].equals(android.Manifest.permission.CAMERA) &&
                grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            sendToExternalApp();
        } else if (requestCode == 1 && permissions[0].equals(android.Manifest.permission.CAMERA) &&
                grantResults[0] == PackageManager.PERMISSION_DENIED) {
            Utilities.showSnackBar("You need to enable camera permission for update profile image", this);
        }
    }

打开相机的代码

protected void sendToExternalApp()
    {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        mProcessingPhotoUri =  getImageFile();
        intent.putExtra(MediaStore.EXTRA_OUTPUT, mProcessingPhotoUri);
        activity.startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);
    }

崩溃日志

由:android.content.activityNotFoundException引起:未找到处理意图的活动{act=android.media.action.image_capture flg=0x3 clip={text/uri-list u:file:///storage/emulated/0/dcim/qdhealt/profile.jpg}(有额外内容)}

共有1个答案

平俊茂
2023-03-14

您的第一个屏幕检查permisson,如下所示

onCreate(或)initialize

if ((ContextCompat.checkSelfPermission(LoginActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA},
                    MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
}

下置法

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case PERMISSIONS_CODE:
            if (grantResults.length <= 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
            }
            break;
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            break;
    }
}
 类似资料:
  • 我尝试在1个应用程序中构建扫描仪和生成器。当我按下发电机按钮时,它突然崩溃了。我的日志中没有任何错误或警告。 这是我的生成器代码: 主活动代码: 有人知道怎么解决这个问题吗?请帮帮我。 更新 以下是我的生成器xml代码: 我希望这将有助于我的问题:( 更新:这是由我愚蠢的打字错误修正;)。非常感谢迄今为止所有回答我问题的人。我说不出我有多感激。特别是对于那个我已经投票支持正确答案的家伙。你真是个英

  • 我的应用程序在Android 7.0中打开相机时崩溃

  • 我只有一个窗口,在那里你推菜单->首选项并启动一个意图 它自动地表示必须关闭应用程序。 未捕获的处理程序:由于未捕获的异常导致线程主退出 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.app/com.example.app.PreferenciasGenerales}: java.lang.ClassCastException

  • 我正在尝试在Flutter中构建一个条形码扫描仪应用程序,为此,我正在使用这个插件,我将其添加到,修改了文件并添加了如下简单代码: 上述方法是在按下按钮时调用的。因此,应用程序加载并我单击按钮,整个模拟器崩溃,没有任何日志或错误消息。这是我在流程中记录的整个日志。最后,它说 这是默认相机应用程序的另一个日志。我似乎找不到发生这种情况的原因。我的模拟器设置都是默认的,我没有更改任何设置,除了后置摄像

  • 我的应用程序有一个问题,我最近开始在Android studio中编程,但我遇到了一个无法解决的问题。所以我有一个包含4个活动的主页面,当我在模拟器中运行程序时,应用程序打开,其中3个活动工作完美,但当我点击打开activity时,我尝试实现滚动条的一个活动崩溃了。 代码如下: 还有撞车: 07/03 16:54:21:正在启动应用程序$adb install-multiple-r-t-p com

  • 下面给出的错误 process:com.example.rahul.maptask,pid:21986 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.rahul.maptask/com.example.rahul.maptask.mainactivity}:java.lang.nullpointerException:试图在A