咖喱给给
咖喱给给
  • 发布:2020-10-27 01:49
  • 更新:2022-03-10 12:39
  • 阅读:2046

Android-SDK@2.9.3.80443_20201015,chooseImage无法唤起相机,可以扫码(已解决,经验分享)

分类:uni-app

近日因为要适配开屏隐私提醒后授权,更新androidsdk至2.9.3版本,发现chooseImage无法唤起相机

症状:
1、扫码可用
2、指定按钮触发chooseImage,type为'camera',点击按钮无反应
3、logcat没有相关显著报错
4、chooseImage无fail返回

核查过程:
1、使用hello项目demo,复制所有lib,可以正常唤起相机拍照
2、复制项目文件到hello里面(我们实际项目使用的是integrated-AS,因为离线打包指引使用这个demo),也可以正常唤起
3、复制项目的androidManifest到hello,也可以正常唤起,说明与权限无关

解决办法:
逐文件比对发现我们的项目缺少库文件weex_livepusher-release.aar
此前因为生成apk过大,我们删除了一部分未使用的包
怎么也想不到是因为这个直播插件缺失导致的相机问题
希望能够帮到有类似问题的朋友

0 关注 分享

要回复文章请先登录注册

howtocry

howtocry

确实是这个问题,我也测试了好一会儿,lib 包中的依赖删删加加,最后发现是 weex_livepusher 的问题。希望官方能优化一下。只是想拍个照没必要引入这么大一个直播用的包吧。
2022-03-10 12:39
9***@qq.com

9***@qq.com

weex_livepusher-release.aar 加了,不好使
2021-05-09 16:25
付坤

付坤

回复 2***@qq.com :
解决了,看回复
2021-04-22 20:24
付坤

付坤

回复 4***@qq.com :
解决了
2021-04-22 20:24
付坤

付坤

原因是FileProvide 未配置
解决方法:
https://nativesupport.dcloud.net.cn/AppDocs/FAQ/android
离线打包Android 10上无法启动相机
在application节点下添加provider节点

<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="${apk.applicationId}.dc.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
Copy to clipboardErrorCopied
${apk.applicationId}须替换成应用的包名。
2021-04-22 20:23
4***@qq.com

4***@qq.com

我也遇到相同的问题。uni.chooseImage()在微信小程序里可以使用相机, 但是在Android App上却不能使用相机。

生成APP apk 时候已经加了相机权限。
在Android Studio的 AndroiMmanifest.xml 我已经加了相机权限:
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />
<uses-permission android:name="android.permission.CAMERA"
android:required="true" />

vue程序:
plus.android.requestPermissions(['android.permission.CAMERA'], function(e){
if(e.deniedAlways.length>0){ //权限被永久拒绝
// 弹出提示框解释为何需要权限,引导用户打开设置页面开启
console.log('权限被永久拒绝'+e.deniedAlways.toString());
}
if(e.deniedPresent.length>0){ //权限被临时拒绝
// 弹出提示框解释为何需要权限,可再次调用plus.android.requestPermissions申请权限
console.log('权限被临时拒绝'+e.deniedPresent.toString());
}
if(e.granted.length>0){ //权限被允许
console.log('权限被允许'+e.granted.toString());
uni.chooseImage({
sourceType: ['camera', 'album'], //从相册选择
success: function (res) {
//console.log(JSON.stringify(res.tempFilePaths));
uni.showModal({
title:'success',
content:JSON.stringify(res)
});
},
fail: function(res){
uni.showModal({
title:'ERROR',
content:JSON.stringify(res)
});
}
});
}
}, function(e){
console.log('Request Permissions error:'+JSON.stringify(e));
});

第一次选“拍摄”, 系统要求权限,打开权限后, 再按就没有反应了。
有什么办法可以在独立APP里使用相机, 谢谢了?

环境:HBuilderX3.0.7 App版,手机:华为P40
2021-01-30 15:49
2***@qq.com

2***@qq.com

回复 Danny7512 :
解决了吗?我也遇到这个问题了,谢谢
2021-01-30 15:30
2***@qq.com

2***@qq.com

回复 m***@163.com :
解决了吗?我也遇到这个问题了,谢谢
2021-01-30 15:30
Danny7512

Danny7512

我也遇到相同的问题。uni.chooseImage()在微信小程序里可以使用相机, 但是在Android App上却不能使用相机。
生成APP apk 时候已经加了相机权限。
在Android Studio的 AndroiMmanifest.xml 我已经加了相机权限:
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="true" />
<uses-permission
android:name="android.permission.CAMERA"
android:required="true" />

我加了DEBUG, 权限没有问题。 第一次选“拍摄”, 系统要求权限,打开权限后, 再按就没有反应了。

有什么办法可以在独立APP里使用相机, 谢谢了?
2020-12-22 22:28
m***@163.com

m***@163.com

我也遇到了这个问题,但是加了这个包之后还是没法调起来摄像头,你是添加的原生的依赖包还是uniapp小程序的依赖包??
2020-12-02 15:13