我是Android开发的新手,我刚开始使用React Native。
我正在使用两个使用FileProvider的npm包。
第一个:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.reactlibrary.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
第二个:
<provider>
android:name="android.support.v4.content.FileProvider"
android:authorities="com.imagepicker.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
并且在调用需要FileProvider的操作时,我收到错误:
--------- beginning of crash
06-23 11:30:30.879 32664 32664 E AndroidRuntime: FATAL EXCEPTION: main
06-23 11:30:30.879 32664 32664 E AndroidRuntime: Process: com.swipes, PID: 32664
06-23 11:30:30.879 32664 32664 E AndroidRuntime: 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
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:583)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:557)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:399)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at com.reactlibrary.RNReactNativeDocViewerModule$FileDownloaderAsyncTask.onPostExecute(RNReactNativeDocViewerModule.java:213)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at com.reactlibrary.RNReactNativeDocViewerModule$FileDownloaderAsyncTask.onPostExecute(RNReactNativeDocViewerModule.java:176)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:667)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.os.AsyncTask.-wrap1(AsyncTask.java)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6121)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
06-23 11:30:30.879 32664 32664 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
我怎么解决这个问题?
我尝试为FileProvider创建一个新类,但它仍会导致相同的错误。这是我的新代码
<provider
android:name=".FileProviderClass"
android:authorities="com.reactlibrary.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
和The Class
package com.reactlibrary;
public class FileProviderClass extends android.support.v4.content.FileProvider {
}
答案 0 :(得分:0)
我使用了两个都使用FileProvider的npm包
如果没有Java和明显的更改,那将无法工作。
并且在调用需要FileProvider的操作时,我收到错误
您只有一个FileProvider
。我不能说这两个中的哪一个赢了#34;但是这个错误来自于为另一个创建Uri
的请求。
最简单的解决方案是用其他东西替换其中一个npm
包。