Xamarin.forms java.lang.NullPointerException:

Xamarin.forms java.lang.NullPointerException:,xamarin.forms,Xamarin.forms,下面是在我的示例项目中起作用的代码段。但它在我的实际项目中不起作用 await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable||!CrossMedia.Current.IsTakePhotoSupported) { await DisplayAlert("No Camera", ":( No camera available.", "OK"); return; } va

下面是在我的示例项目中起作用的代码段。但它在我的实际项目中不起作用

 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
  });
例外情况:

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)

除了添加正确的权限外,如果您的目标是Android N(API级别24+),请确保您已经在Android项目的
资源
文件夹中名为
xml
的文件夹下添加了额外的
文件路径.xml
文件

应该是这样的:

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

其中您的应用程序包名称必须设置为您的应用程序包名称

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>
然后将其添加到`androidmanifest.xml`文件中的`application`标记中:
再次确保您的应用程序包\u名称设置为应用程序包名称


有关使用此插件时需要配置的更多信息,请确保除了添加正确的权限之外,还阅读了

上的文档,如果您的目标是Android N(API级别24+),请确保您已在Android项目的
资源
文件夹中名为
xml
的文件夹下添加了额外的
文件\u path.xml
文件

应该是这样的:

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

其中您的应用程序包名称必须设置为您的应用程序包名称

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>
然后将其添加到`androidmanifest.xml`文件中的`application`标记中:
再次确保您的应用程序包\u名称设置为应用程序包名称


有关使用此插件时需要配置什么的更多信息,请确保您阅读了关于我遇到上述问题的文档,即使我已经完成了上述所有操作。我在android项目属性的“应用程序”选项卡中为“使用android版本编译:(目标框架)”设置了“使用最新平台(Android7.1)”,解决了这个问题。

即使我已经做了上述所有事情,我还是遇到了上述问题。我在android项目属性的“应用程序”选项卡中为“使用android版本编译:(目标框架)”设置了“使用最新平台(Android7.1)”,解决了这个问题。

您在项目中添加了正确的权限和文件提供程序标记了吗?如果是,请将它们添加到问题中。我没有添加任何权限。Nuget包将负责所有权限。我的示例项目运行良好。您检查了吗?因为我见过努吉人没有照顾它的案例。它必须是相关的,因为我看到了“loadxmlmetadata”这样的术语。你能提供我们需要提供的所有权限吗..因为我尝试了像camera这样的权限,外部存储和外部读写等等。我认为发布XML文件更有用,因为错误在于您。您是否在项目中添加了正确的权限和文件提供程序标记?如果是,请将它们添加到问题中。我没有添加任何权限。Nuget包将负责所有权限。我的示例项目运行良好。您检查了吗?因为我见过努吉人没有照顾它的案例。它必须是相关的,因为我看到了“loadxmlmetadata”这样的术语。你能提供我们需要提供的所有权限吗..因为我尝试了摄像头、外部存储和外部读写等权限。我认为如果你发布XML文件会更有用,因为错误在于你。注解释。。我不知道该怎么解释。。我不知道需要将xml文件夹