【问题标题】:how to solve this problem android error ?? (java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser)如何解决这个问题android错误? (java.lang.NullPointerException:尝试调用虚拟方法'android.content.res.XmlResourceParser)
【发布时间】:2020-01-31 09:04:29
【问题描述】:

当我执行我的应用程序时,android studio LOGCAT 中出现以下错误。 如何解决这个问题?

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
        at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:605)
        at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:579)
        at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:417)
        at com.google.zxing.client.android.CaptureActivity$18.onClick(CaptureActivity.java:1527)
        at android.view.View.performClick(View.java:6891)
        at android.widget.TextView.performClick(TextView.java:12651)
        at android.view.View$PerformClick.run(View.java:26083)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

我在AndroidManifest.xml下面添加了

<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>

我添加了 privider_paths 文件。

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path
        name="external_files"
        path="." />
    <root-path
        name="external_files"
        path="/storage/"/>
</paths>

而此时出现错误

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID+".FileProvider", file));

【问题讨论】:

  • 使用cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID+".provider", file)); 看看它是否工作
  • 您的provider_path.xml 不正确,请仔细阅读LOGS。检查格式是否正确。你在使用哪个库?检查文档以在 privider_paths.xml 中放置正确的路径。甚至有时在极少数情况下 android:authorities="${applicationId}.provider" 这也无法按预期正常工作。静态放置包名。

标签: java android nullpointerexception fileprovider


【解决方案1】:

在你的 application 标签内试试这个

<application
        android:requestLegacyExternalStorage="true">
</application>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多