首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Cordova Android摄像头-非法参数例外

Cordova Android摄像头-非法参数例外
EN

Stack Overflow用户
提问于 2017-02-28 15:18:36
回答 5查看 1.4K关注 0票数 20

2个月前,我开始了cordova Android编程。一切都很好,主要是摄像头现在不工作了。但是上周我的项目目录被删除了,我重新安装了cordova的所有插件和编译的项目,但现在它在相机点击时显示错误‘非法参数异常’,令人惊讶的是,我没有更改一行代码,它在其他开发人员机器上也可以正常工作。

cordova插件添加从相机插件安装中使用的cordova- plugin -camera命令。

camera_app.js文件

var pictureSource; // picture source
var destinationType; // sets the format of returned value


// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
    pictureSource = navigator.camera.PictureSourceType;
    destinationType = navigator.camera.DestinationType;

}


// Called when a photo is successfully retrieved
//
function onPhotoURISuccess(imageURI) {
    // largeImage.src = imageURI;
    console.log(imageURI);
    console.log(document_type);


}

function getPhoto(docType) {
    // Retrieve image file location from specified source
    document_type = docType
    $('.docError').hide();
    navigator.camera.getPicture(onPhotoURISuccess, onFail, {
        quality: 50,
        destinationType: destinationType.FILE_URI
    });
}


$('#file1').click(function() {
    console.log('On camera click');
    getPhoto("addressProof");
});

我试着调试代码,最后发现是由于提供程序路径- java.lang.IllegalArgumentException:缺少android.support.FILE_PROVIDER_PATHS元数据

但我已经在Android xml文件中添加了提供者路径元数据,因为它会在您添加cordova插件时自动添加。

 <provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
        </provider>

cordova插件-

Cordova-plugin-app-version0.1.9 "AppVersion“Cordova -plugin-camera 2.4.1 "Camera”cordova-plugin-compat 1.1.0 "Compat“cordova-plugin-whitelist 1.3.2”白名单“cordova- sqlite -storage 1.4.9”Cordova sqlite storage plugin“ionic plugin-Keyboard 2.2.1”键盘“

科尔多瓦平台-

安装平台:安卓6.2.3可用平台: blackberry10 ~3.8.0 (不推荐使用)浏览器~4.1.0WebOS ~3.7.0 windows ~5.0.0

NPM版本-{ npm:'3.10.3',ares:'1.10.1-DEV',http_parser:'2.7.0',icu:'57.1',模块:'48',节点:'6.4.0',openssl:'1.0.2h',uv:'1.9.1',v8:'5.0.71.60',zlib:'1.2.8‘}

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-09-21 03:01:22

这是非常简单和基本的。只需将您的文件提供商添加到您的cordova启动器活动。在我的例子中,我有一些自定义活动,错误地在所有活动的底部添加了provider,我猜cordova无法读取该provider,这就是为什么它为java.lang.IllegalArgumentException:提供了缺少android.support.FILE_PROVIDER_PATHS元数据的

票数 8
EN

Stack Overflow用户

发布于 2017-03-22 06:10:14

今天我也遇到了类似的问题。尝试了所有方法(重新安装插件,从源重新安装插件,重新安装旧版本的插件),但似乎都没有帮助。不知道为什么,但是在杀死模拟器之后-> cordova干净android -> cordova平台删除android -> cordova平台添加android -> cordova构建android -连接我的设备-> cordova运行android它像以前一样工作:-)我仍然不知道为什么。尝试一下,风险自负。也许这会有帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-02-15 04:41:14

请确保您的安卓虚拟设备模拟器设置了前后摄像头!我也有同样的错误,删除和添加平台不起作用。

Sidenote: For the Emulator to work, you need to have him already open and then you could run your Debug APK from Android Studio 3.3 or run `ionic cordova run android`.

工作原理:打开安卓虚拟设备管理器(安卓工作室->配置-> AVD管理器)

操作->编辑(铅笔图标)

显示高级设置

确保您添加了前置和后置摄像头!之前这个设置是"None",所以这不起作用,我得到了上面的错误。添加摄像头后,一切正常。

希望这能对像我这样的人有所帮助,因为我的AVD配置没有摄像头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42502474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档