无法在模拟器中使用相机 - SD 卡不可用

Can't use camera in the emulator - SD card unavailable

当我尝试从我的模拟器 运行 内置相机应用程序时,我收到消息:'Cannot take pictures without SD card inserted'。

我正在使用 Emulator Nexus 5 API 21 x86。我检查了 AVD 管理器,模拟器的 SD 卡设置为可以使用: .android\avd\Nexus_5_API_21_x86.avd\sdcard.img ,所以我想这意味着它已启用

我不明白:
1. 如果我的虚拟 SD 卡设置正确,为什么我会收到此消息

2. 为什么相机必须连接到SD卡?在我个人的真实 android 设备中,即使我根本没有 SD 卡,我也会使用相机。它只是将照片存储到设备的内部存储器中。
3. 在我开发的应用程序中,作为另一种可能的解决方案,我正在调用相机并提供 内部存储 的文件路径,但我仍然得到关于 SD 卡的相同消息。 我的代码:

int REQUEST_TAKE_PHOTO = 1;

public void takePicture(View view){
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // Ensure that there's a camera activity to handle the intent
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            // Create the File where the photo should go
            File photoFile = null;
            try {
                photoFile = File.createTempFile(
                "blabla",  /* prefix */
                ".jpg",         /* suffix */
                getFilesDir()      /* directory */
        );
            } catch (IOException ex) {
                // Error occurred while creating the File
                throw new RuntimeException("Couldn't take picture");
            }
            // Continue only if the File was successfully created
            if (photoFile != null) {
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                        Uri.fromFile(photoFile));
                startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
            }
        }
    }

相机可能会将图像(或缓存图像)保存在 SD 卡中。如果你想测试 Camera 是否需要 SDcard(通常不需要),请删除 SDCard 选项。否则,我认为您可以尝试通过以下方式创建新的 SD 卡:

  1. Or create new image
  2. 为新 SD 卡输入 150MB
  3. 好的,然后重试。