显示java.lang.NullPointerException:

Lav*_*mar 0 xamarin.forms

Follwing是我的示例项目中的代码片段.但它在我的实际项目中不起作用.

 await CrossMedia.Current.Initialize();
 if (!CrossMedia.Current.IsCameraAvailable||!CrossMedia.Current.IsTakePhotoSupported)
 {
   await DisplayAlert("No Camera", ":( No camera available.", "OK");
   return;
  }
 var filePath = await CrossMedia.Current.TakePhotoAsync(newPlugin.Media.Abstractions.StoreCameraMediaOptions
  {
     SaveToAlbum = true
  });
Run Code Online (Sandbox Code Playgroud)

例外:

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:560)
    at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534)
    at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:376)
    at md5a3e164e78ade0c22cefea770ddd0bc49.MediaPickerActivity.n_onCreate(NativeMethod)     at md5a3e164e78ade0c22cefea770ddd0bc49.MediaPickerActivity.onCreate(MediaPickerActvity.java:42)
    at android.app.Activity.performCreate(Activity.java:6092)
Run Code Online (Sandbox Code Playgroud)

Ger*_*uis 5

除了添加正确的权限外,如果您要定位Android N(API级别24+),请确保已在Android项目文件file_paths.xml夹中调用xmlResources文件夹下添加了其他文件.

它应该如下所示:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="my_images" path="Android/data/YOUR_APP_PACKAGE_NAME/files/Pictures" />
    <external-path name="my_movies" path="Android/data/YOUR_APP_PACKAGE_NAME/files/Movies" />
</paths>
Run Code Online (Sandbox Code Playgroud)

YOUR_APP_PACKAGE_NAME必须设置为你的应用程序包的名字!

Then add this in your `application` tag in the `androidmanifest.xml` file:

<provider android:name="android.support.v4.content.FileProvider" 
                android:authorities="YOUR_APP_PACKAGE_NAME.fileprovider" 
                android:exported="false" 
                android:grantUriPermissions="true">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" 
                android:resource="@xml/file_paths"></meta-data>
</provider>
Run Code Online (Sandbox Code Playgroud)

同样,请确保将您的YOUR_APP_PACKAGE_NAME设置为您的应用包名称.

有关使用此插件时需要配置的内容的更多信息,请务必阅读Github页面上的文档