-3

when I perform my app, The following error occurs in android studio LOGCAT. How to solve this problem?

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)

I added below in 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>

and I added privider_paths file.

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

and The error occurs this point

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID+".FileProvider", file));
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
kmh
  • 1
  • 1
  • 5
    Does this answer your question? [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – isaaaaame Jan 31 '20 at 09:05
  • 1
    Use `cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID+".provider", file));` and see if its working – Manohar Jan 31 '20 at 09:12
  • Your provider_path.xml is incorrect, read the LOGS carefully. Check for correct formatting. Which library are you using? check the documentation for it to place correct path in privider_paths.xml. And even sometimes in rare cases android:authorities="${applicationId}.provider" this doesn't works properly as expected. Place the package name statically. – Blu Jan 31 '20 at 10:18

1 Answers1

0

try this inside of your application tag

<application
        android:requestLegacyExternalStorage="true">
</application>
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197