Android - 使用react-native-camera拍照时出错:E_TAKE_PICTURE_FAILED

问题描述 投票:0回答:1

我在尝试使用 React Native 应用程序中的 react-native-camera 库拍照时遇到问题。 takePicture 函数失败并出现以下错误:

enter image description here

我使用以下代码来拍照:

const takePicture = async () => {
    if (camera) {
      try {
        await camera.resumePreview(); 
        await new Promise(resolve => setTimeout(resolve, 100)); 
        const data = await camera.takePictureAsync();
        console.log('Picture taken', data);

        const image = {
          localPath: data.uri,
          imageType: vehicleImageIndex,
        };
        const updatedPictures = [...cameraPictures];
        updatedPictures[vehicleImageIndex] = image;
        setCameraPictures(updatedPictures);

        setVehicleImageIndex(prevIndex => prevIndex + 1); 

      } catch (error) {
        console.error('Error taking picture: ', error);
      }
    } else {
      console.log('Camera not ready');
    }
};

我已尝试以下方法来解决该问题,但无济于事:

  1. 检查AndroidManifest.xml中的相机权限
  2. 验证相机对象是否已正确初始化
  3. 在调用 takePictureAsync() 之前添加了延迟

有人遇到过类似的问题或知道如何解决这个问题吗?任何帮助将不胜感激。

环境:

  1. React Native 版本:“0.71.15”,
  2. react-native-camera 版本:“^4.2.1”
android react-native react-native-camera
1个回答
0
投票

在 android/app/build.gradle 中插入以下行:

android {
  ...
  defaultConfig {
    ...
    missingDimensionStrategy 'react-native-camera', 'general' // <--- insert this line
  }
}

希望对您有帮助。请参阅文档

© www.soinside.com 2019 - 2024. All rights reserved.