我开始 cordova Android编程2个月回来。一切都很好,主要是相机,现在不工作。但上周一些如何我的项目目录被删除,我重新安装 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文件中添加了提供者路径 meta数据,因为当您添加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插件应用程序版本0.1.9“应用程序版本”cordova插件相机2.4.1“相机”cordova插件兼容1.1.0“兼容”cordova插件白名单1.3.2“白名单”cordova sqlite存储1.4.9“Cordova sqlite存储插件”离子插件键盘2.2.1“键盘”
cordova 平台
已安装的平台:Android 6.2.3可用平台:黑莓10 ~3.8.0(已弃用)浏览器~4.1.0 webos ~3.7.0 windows ~5.0.0
NPM版本- { npm:“3.10.3”,战神:“1.10.1-DEV”,http解析器:“2.7.0”,加护病房:'57.1',模块:“48”,节点:“6.4.0”,开放式 ssl :'1.0.2h',紫外线:“1.9.1”,第8版:'5.0.71.60',字符库:“1.2.8”}
5条答案
按热度按时间vcudknz31#
这是非常简单和基本的。只需添加您的文件提供程序下面到您的cordova启动器活动。在我的情况下,我有一些自定义活动和错误的提供程序被添加到底部的所有活动,我的猜测是cordova无法读取该提供程序,这就是为什么它是给java.lang.IllegalArgumentException:缺少android.support.FILE_PROVIDER_PATHS元数据
nbnkbykc2#
我今天也遇到了类似的问题,什么都试过了(重新安装插件,从源代码重新安装插件,重新安装旧版本的插件),但似乎没有帮助。不知道为什么,但后-杀死模拟器-〉 cordova 清洁Android -〉 cordova 平台删除Android -〉 cordova 平台添加Android -〉 cordova 建立Android -连接我的设备-〉 cordova 运行Android它再次工作像以前一样:-)我仍然不知道为什么。尝试它在你自己的风险。也许它有帮助。
ttcibm8c3#
确保你的Android虚拟设备仿真器有一个前后摄像头设置!我也有同样的错误和删除和添加平台不工作。
有效的方法:打开Android虚拟设备管理器(Android Studio -〉配置-〉AVD管理器)
操作-〉编辑(铅笔图标)
显示进阶设定
确保你确实添加了前后摄像头!之前这个设置是“无”,所以这不起作用,我得到了上面的错误。添加摄像头后,一切正常。
希望这能帮助像我这样的人,他有一个没有摄像头的AVD配置。
gfttwv5a4#
有两种方法可以解决此问题。
1.可能与AndroidManifest.xml(Package= / ApplicationId)中的提供程序名称不匹配
1.第二种方式在build.gradle(app)文件中
release {... minifyEnabled false ...}
w6mmgewl5#
在“www.example.com“中将applicationId更改为应用程序包ID后,它可以正常工作 CameraLancher.java