Ошибка FileProvider

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

Все, что я пытаюсь сделать, это сделать снимок с помощью камеры, сохранить его и отобразить в ImageView.

Я следил за андроидным руководством выше и продолжаю получать ошибку (исключение NullPointerException) в строке:

Uri photoURI = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile); 

Я знаю, что мне нужно настроить FileProvider в манифесте моего приложения, и «власти» должны соответствовать. Я не совсем понимаю, что я должен вводить в аргументы властей . Я скопировал весь код из учебника, включая файл res / xml / file_paths.xml. При необходимости задайте любые вопросы.

Благодаря!

Я, наконец, получил его на работу!

Не забудьте поставить тег провайдера 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> 

Конечно, вы должны изменить путь для своего приложения.

Мой фактический провайдер выглядит следующим образом:

 <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> 

Опять же, вам нужно будет изменить значение полномочий в своем приложении.

Вы можете увидеть весь источник в репозитории GitHub из моего первоначального вопроса.

Я также забыл поместить <provider> в <application> ; Я ошибочно поставил их на том же уровне, который с тех пор исправил.

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zm.mytestapplication"> <application ... android:theme="@style/AppTheme"> <provider android:name="android.support.v4.content.FileProvider" android:authorities="zm.mytestapplication.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data> </provider> </application> </manifest> 

file_paths.xml

 <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="my_images" path="Pictures/zm/" /> </paths>