FileProvider throws exception on GetUriForFile

I finally found good example code on how to create ContentProviders and FileProviders on https://github.com/commonsguy/cw-omnibus/tree/master/ContentProvider

The actual error in my code was that in the Manifest file I had the provider tag outside of the application tag, but it must be inside.
The Manifest must look like this:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.company.app">
<uses-sdk android:minSdkVersion="13" />

<permission
    android:name="com.company.app.fileprovider.READ"
    android:description="@string/perm_read"
    android:label="@string/perm_read_label"/>
<uses-permission android:name="com.company.app.fileprovider.READ"/>

<application android:label="MyApp">

    <provider 
    android:name="android.support.v4.content.FileProvider" 
    android:authorities="com.company.app.fileprovider" 
    android:exported="false" 
    android:grantUriPermissions="true"
    android:readPermission="com.company.app.fileprovider.READ">
                <meta-data 
                android:name="android.support.FILE_PROVIDER_PATHS" 
                android:resource="@xml/file_paths" />
    </provider>

</application>
<uses-permission android:name="android.permission.INTERNET" />

</manifest>

Leave a Comment