美文网首页
Failed to find configured root t

Failed to find configured root t

作者: 学无止境的cy | 来源:发表于2019-04-29 17:09 被阅读0次
背景:测试某天突然和我说图片选择框架的拍照功能用不了,点击就崩溃,但是我记得这个是用的第三方的框架,之前的版本都没问题,也没人反馈过啊,吓得我连忙对测试说看看线上版本有没有问题,得到的反馈是没有问题。看了一下提交记录也没人动啊,为啥就突然不行了呢。

先把整个流程贴出来然后再把自己踩坑的地方贴出来

自定义一个类继承原本的FileProvider

public class PictureFileProvider extends FileProvider {

}

在你的xml文件夹增加

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <paths>
        <external-path
            name="camera_photos"
            path="" />
    </paths>
</resources>

最后在你的清单文件中添加

     <provider
            android:name="你的provider位置"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/你的path />
        </provider>

使用的时候

  private Uri parUri(File cameraFile) {
        Uri imageUri;
        String authority = getPackageName() + ".provider";
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
            //通过FileProvider创建一个content类型的Uri
            imageUri = FileProvider.getUriForFile(mContext, authority, cameraFile);
        } else {
            imageUri = Uri.fromFile(cameraFile);
        }
        return imageUri;
    }

根据网上的方案说是可能存在读不到外载的SD卡的路径,把external-path
改成root-path可能会有用,但是在我这里没用,而且debug发现使用的时候文件的路径是能够正确获取,权限也不存在问题。还把一系列的path都列了一遍还是不行啊。
最后是发现的在最新的代码当中,在当前的项目当中新建了一个file_path的文件,而恰恰在第三方的xml文件的命名也是这个,随便改一个重复命名这个问题就解决了。


如果这篇文章对你有帮助就帮忙点个赞吧

相关文章

网友评论

      本文标题:Failed to find configured root t

      本文链接:https://www.haomeiwen.com/subject/bqvjnqtx.html