android-FileProvider-name不能为空
我的清单中有以下文件提供程序:android-FileProvider-name不能为空,android,Android,我的清单中有以下文件提供程序: <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.android.provider.DataSharing-1" android:exported="false" android:grantUriPermissions="true">
<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>
我如何解决这个问题?我在哪里错过了指定名称
编辑:
res/xml/path.xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path android:name="my_images" android:path="images/"/>
</paths>
从
path.xml
文件的属性中删除android:
前缀。它应该是这样的:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="my_images" path="images/"/>
</paths>
(您可能也可以去掉
xmlns:android
位,因为它没有被使用,尽管我有它,可能是因为Eclipse在创建文件时把它放在了那里…对我来说没有任何效果。因此,我从Android Studio关闭了该项目,然后删除了.gradle和.idea文件,然后它开始像一个符咒一样工作:)首先,这是当局的问题。您应该使用applicationId为应用程序提供.fileprovider或fileprovider,然后它就可以工作了。希望这可能会对某人有所帮助在我的例子中,xml文件被保存为文件名_V21.xml,这就产生了问题。我将路径文件重命名为filename.xml解决了问题。我不确定这是一个有效的机构名称(-1
使我暂停)。但是,我认为您真正的问题在于元数据--postres/xml/path.xml
@commonware我需要发布我如何在代码中使用FileProvider吗?@commonware我尝试删除'-1'。它仍然有同样的问题。以前,我有你说的“名称”和“路径”。但后来我发现了一个错误:Android属性缺少名称空间前缀。好吧,它起作用了。我删除了xmlns。。以及路径和名称中的“android:”。谢谢@Jake hwo ur path.xml看起来怎么样?我也一样
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="my_images" path="images/"/>
</paths>