Android - FileProvider - имя не должно быть пустым

У меня есть следующий FileProvider в моем манифесте:

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.android.provider.DataSharing-1"
        android:exported="false"
        android:grantUriPermissions="true">

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

    </provider>

При запуске приложения я получаю следующее исключение:

 java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.IllegalArgumentException: Name must not be empty
        at android.app.ActivityThread.installProvider(ActivityThread.java:4793)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4325)
        at android.app.ActivityThread.access$1500(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalArgumentException: Name must not be empty
        at android.support.v4.content.FileProvider$SimplePathStrategy.addRoot(FileProvider.java:644)
        at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:587)
        at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534)
        at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:352)
        at android.app.ActivityThread.installProvider(ActivityThread.java:4790) ...

Как мне это решить? Где я пропустил указание имени?

Изменить:

Рез/XML/paths.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <files-path android:name="my_images" android:path="images/"/>
</paths>

Ответ 1

Удалите префикс android: из атрибутов в вашем файле paths.xml. Он должен выглядеть так:

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="my_images" path="images/"/>
</paths>

(и вы, вероятно, можете избавиться от бит xmlns:android, так как он не используется, хотя я его в один из моих, возможно потому, что Eclipse поместил его там при создании файла...)

Ответ 2

Ничто не сработало для меня. Поэтому я закрыл проект из Android Studio и затем удалил файлы .gradle и .idea, а затем он начал работать как чудо :) Сначала это была проблема с властями. Вы должны предоставить .fileprovider или fileprovider для вашего приложения, возможно, с applicationId, и тогда он заработает. Надеюсь, что это может помочь кому-то