【发布时间】:2017-12-02 18:11:34
【问题描述】:
您好,由于 FileProvider 导致 NPE,我目前在启动 Intent 时遇到错误。我按照here 提供的步骤操作,但仍然出现错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
我也不确定这里是否使用了 provider_paths.xml。到目前为止,这是我的代码:
清单:
<application>... <provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider></application>
res/xml:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
代码:
Uri uri=FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID+".provider", file);
这里似乎是错误的原因。
【问题讨论】:
-
我不知道为什么我对这个问题投了反对票。我知道有些人会说这是重复的,但我已经检查了我可以在此处找到的每个解决方案,并且都说相同。现在我选择只使用: StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build());可悲的事情SO社区。 :(
标签: android android-fileprovider