I want to backup Room database of my app. I'm trying to get uri of database using FileProvider
, but it throws IAE at this line:
Uri contentUri = FileProvider.getUriForFile(this,
"com.trulden.friends.FileProvider", getDatabasePath(DATABASE_NAME));
In AndroidManifest.xml
I have this provider tag:
<application .. >
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.FileProvider"
android:exported="false"
android:grantUriPermissions="true"
>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"
/>
</provider>
...
</application>
provider_paths.xml
looks like this:
<paths>
<files-path name="database" path="databases/"/>
</paths>
The error:
08-29 13:28:27.430 8146-8146/com.trulden.friends E/MessageQueue-JNI: java.lang.IllegalArgumentException:
Failed to find configured root that contains
/data/data/com.trulden.friends/databases/friends_database
at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:739)
Result of getDatabasePath(DATABASE_NAME).getAbsolutePath()
looks like this:
/data/data/com.trulden.friends/databases/friends_database