React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序

Posted

技术标签:

【中文标题】React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序【英文标题】:React-Native Camera error - No suitable URL request handler found for assets-library 【发布时间】:2017-12-24 23:21:56 【问题描述】:

我正在创建 react-native 应用程序,它允许我使用相机拍照并上传到 AWS S3。

我可以单击图片并将图像保存到我的 iPhone 相机胶卷。但是,当我尝试上传图片时,我收到错误No suitable URL request handler found for assets-library://asset,如下所示: 这是代码sn-p:

import Camera  from 'react-native-camera';    
import RNS3 from "react-native-aws3";

    class NCamera extends React.Component 
        takePicture() 
            this.camera.capture()
                .then((data) => 
                    const file =  uri: data.path, name: 'image.png', type: 'image/png',
                    const options = 
                        keyPrefix: "images/",
                        bucket: "my-bucket-name",
                        region: "us-east-1",
                        accessKey: "key",
                        secretKey: "secret-key",
                        successActionStatus: 201
                    
                    RNS3.put(file, options)
                        .then(response => 
                            if (response.status != 201 )
                                console.log('Error uploading file to S3');
                            else
                                console.log(response.body);
                    )
                        .catch (error => console.log(`Error uploading: $error`));
                )
                .catch(err => console.log(err));
        
        render() 
            return (
                <Camera
                    ref=(cam) => 
                        this.camera = cam;
                    
                    style=styles.preview
                    aspect=Camera.constants.Aspect.fill>
                    <Text style=styles.capture onPress=this.takePicture.bind(this)>[CAPTURE]</Text>
                </Camera>
            );
        
    

解决方案 我添加了libRCTCameraRoll.a 解决了这个问题。

步骤如下: 1.在xcode中打开RCTCameraRoll.xcodeproj。该文件位于node_modules/react-native/Libraries/CameraRoll 2. 在 Build Phases 下,添加 libRCTCameraRoll.a(截图如下)。

【问题讨论】:

【参考方案1】:

如果这是在 ios 上,我认为您需要在 XCode 中链接 libRCTCamera.a 以便正确解析文件 url。有关详细信息,请参阅this medium article。

【讨论】:

添加 libRCTCameraRoll.a 解决了这个问题。我用解决方案更新了我的帖子。感谢您的链接。它帮助我解决了问题。

以上是关于React-Native Camera 错误 - 没有为资产库找到合适的 URL 请求处理程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-native-camera 构建错误

React-native refs 和 Expo Camera

react-native项目中集成react-native-camera插件

react-native 应用程序中的 canOverrideExistingModule 问题

React-Native中二维码扫描使用

拍照时 React-native iOS 应用程序崩溃