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)
除了添加正确的权限外,如果您要定位Android N(API级别24+),请确保已在Android项目文件file_paths.xml夹中调用xml的Resources文件夹下添加了其他文件.
它应该如下所示:
<?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页面上的文档
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |