FileProvider错误

raf*_*asq 13 android android-appwidget android-studio android-fileprovider

https://developer.android.com/training/camera/photobasics.html

我所要做的就是用相机拍照,保存并在ImageView中显示.

我按照上面的android教程继续在行上得到一个错误(一个NullPointerException):

Uri photoURI = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile);
Run Code Online (Sandbox Code Playgroud)

我知道我需要在应用程序的清单中配置FileProvider,并且"权限"必须匹配.我不太明白我应该在当局的论点中提出什么.我复制了教程中的所有代码,包括文件res/xml/file_paths.xml.如有必要,请提出任何问题

谢谢!

zai*_*run 27

我终于开始工作了!

记得把提供者标签INSIDE应用程序标签放在清单文件中 - 这是我的错误(我的提供者标签是应用程序标签的OUTSIDE),以及你得到这个错误的原因,这基本上说它无法找到提供者的定义.

还要确保.xml文件中有正确的路径.这是我的版本:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <external-path
        name="my_images"   
        path="Android/data/org.projects.cameraapp/files/Pictures" />

</paths>
Run Code Online (Sandbox Code Playgroud)

当然,您必须更改自己的应用程序的路径.

我的实际提供商然后看起来像这样:

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="org.projects.cameraapp.fileprovider"          
    android:exported="false"
    android:grantUriPermissions="true">

    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/filepaths" />

</provider>
Run Code Online (Sandbox Code Playgroud)

同样,您需要在自己的应用程序中更改权限值.

您可以从我原来的问题中看到GitHub存储库中的所有源代码.