首页 > 解决方案 > 应用程序崩溃从外部存储中选择图像

问题描述

我的 onActivityResult 代码

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GalleryPick && resultCode == RESULT_OK && data!= null) {
        Uri imageUri = data.getData();

        CropImage.activity()
                .setGuidelines(CropImageView.Guidelines.ON)
                .setAspectRatio(1,1)
                .start(SettingsActivity.this);
    }

    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        if (resultCode == RESULT_OK) {
            Uri resultUri = result.getUri();
        } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
            Exception error = result.getError();
        }
    }
}

当我尝试从设备库中选择图像时,它在图像裁剪活动中崩溃告诉我我的代码有什么问题

错误说

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/images/media/25/ORIGINAL/NONE/1270245750 flg=0x1 clip={text/uri-list U:content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F25/ORIGINAL/NONE/1270245750} }} to activity {com.gihan.mechat/com.gihan.mechat.SettingsActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.gihan.mechat/com.theartofdev.edmodo.cropper.CropImageActivity}; have you declared this activity in your AndroidManifest.xml?

应用程序崩溃恰好在

start(SettingsActivity.this);

`

标签: javaandroid-studio

解决方案


检查权限,我曾经遇到过这种类型的问题,对于 API > 29,我们需要清单文件中的以下代码。

android: requestLegacyExternalStorage = true

此代码是获取存储权限所必需的。另外,请转到手机设置中的权限管理器,然后检查那里的切换按钮。


推荐阅读