12

Я использую поставщик файлов для сохранения фотографии в данном месте назначения. я получаю:Android File Provider Illegal Argument Exception

java.lang.IllegalArgumentException: Отсутствует android.support.FILE_PROVIDER_PATHS мета-данные при попытке открыть деятельность, чтобы захватить изображение с камеры.

Мой файл manifest.xml:

<provider 
android:name="android.support.v4.content.FileProvider" 
android:authorities="com.example" 
android:exported="false" 
android:grantUriPermissions="true"> 
    <meta-data 
    android:name="android.support.FILE_PROVIDER_PATHS" 
    android:resource="@xml/paths" /> 
</provider> 

Мой paths.xml файл:

<paths xmlns:android="http://schemas.android.com/apk/res/android"> 
    <external-path name="content" path="Android/data/com.my_package_name/files/" /> 
</paths> 

и Java-код:

File externalFilesDirectory = this.getExternalFilesDir(null); 
File imageFile = File.createTempFile(
     imageFileName, 
     ".jpg", 
     externalFilesDirectory 
); 
Uri photoURI = FileProvider.getUriForFile(this, "com.example", imageFile); 

Последняя строка дает исключение. Что мне здесь не хватает? Я следил за учебником с официального сайта разработки Android (https://developer.android.com/training/camera/photobasics.html)

+0

Можете ли вы добавить ссылку на учебник. –

+0

yep, сделано сейчас –

+0

'com.example' должно быть' 'com.example''. Это исправить? –

ответ

15

Я нашел решение. Проблема заключалась в том, что мое имя пользователя не заканчивалось «.fileprovider». Исправлена.

+0

Хорошо. Кажется странным, что они навязывают это –

+0

Можете ли вы предоставить ссылку на любой документ, требующий, чтобы имя владельца FileProvider заканчивалось «.fileprovider»? – anticafe

+0

https://developer.android.com/reference/android/support/v4/content/FileProvider.html#ProviderDefinition – Arst

Смежные вопросы