当前位置:   article > 正文

Android 7.0调用相机问题_共享路径_com.luck.picture.lib

com.luck.picture.lib

Android7.0调用相机报错,这是报的错误最开始以为是权限问题,所以针对6.0以上版本加了动态权限。重装了应用。问题依旧。仔细看了下日志,并各种谷歌。发现是共享路径问题。

  1. java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/PictureSelector/CameraImage/PictureSelector_20180721_043555.JPEG
  2. at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:739)
  3. at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:418)
  4. at com.luck.picture.lib.PictureSelectorActivity.parUri(PictureSelectorActivity.java:437)
  5. at com.luck.picture.lib.PictureSelectorActivity.startOpenCamera(PictureSelectorActivity.java:364)
  6. at com.luck.picture.lib.PictureSelectorActivity.startCamera(PictureSelectorActivity.java:340)
  7. at com.luck.picture.lib.PictureSelectorActivity$9.onNext(PictureSelectorActivity.java:739)
  8. at com.luck.picture.lib.PictureSelectorActivity$9.onNext(PictureSelectorActivity.java:730)

 修改了好几天。走了不少弯路,终于把问题解决了。顺便说一句我的使用的是  PictureSelector  图片选择框架

(传送门:此处直接附上了GitHub地址,方便查看)

说明的虽然很清楚,方法也很多,基本都符合需求。当时只看到了这么多。以至于后期出现问题都不知道是那里的问题,所以说还是要看清楚每一个库的用法,在使用的时候不至于出现很多令人抓头的错误。

啰嗦就这么多...

这是AndroidManifest的配置。此标签一定要在应用里面,一定要,一定要,一定要,重要的事情要说三遍

  1. <provider
  2. android:name="包名.PictureFileProvider"//这里我用的是自定义的FileProvider,v4包下的是默认的,android.support.v4.content.FileProvider
  3. android:authorities="${applicationId}.provider"
  4. android:grantUriPermissions="true"
  5. android:exported="false"
  6. tools:replace="android:authorities">
  7. <meta-data
  8. android:name="android.support.FILE_PROVIDER_PATHS"
  9. tools:replace="android:resource" //这行不加的话会报错,不懂的自行百度吧
  10. android:resource="@xml/file_paths" />
  11. </provider>

在res文件下创建xml文件夹(都懂得,,)创建file_paths.xml。添加 

external-path标签 name是uri路径的片段  path是你共享的子目录  你可以看看这篇文章,对标签的说明还有provider的使用,都挺清晰的

2020年12月24日17:34 补充一

针对以下这个错误,提供解决方法

 android.os.FileUriExposedException: file:///storage/emulated/0/DCIM/IMG_4987859912810132257.jpg exposed beyond app through ClipData.Item.getUri()

  1. // android 7.0系统解决拍照的问题
  2. StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
  3. StrictMode.setVmPolicy(builder.build());
  4. builder.detectFileUriExposure();

此方法也可以解决拍照错误的原因

https://blog.csdn.net/black_bread/article/details/69258613

总结:就这么几个过程,困扰了我好几天。真的是......简直了...这篇文章也是看了好多大神的文章,解决了问题,自己做个小笔记。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/222229
推荐阅读
相关标签
  

闽ICP备14008679号