我有使用Xamarin Forms构建的android应用程序.为了使用手机的相机,我安装Xam.Plugin.Media插件并完全按照此视频的说明进行操作.
这是我的代码:
public async void TakePhotoAsAttachment(object sender, EventArgs e)
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return;
await DisplayAlert("File Location", file.Path, "OK");
image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
return stream;
});
}
Run Code Online (Sandbox Code Playgroud)
但是,在执行此代码时:
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
{Java.Lang.ClassNotFoundException:md55b01af31820394fbfb172542d1258596.MediaPickerActivity ---> Java.Lang.ClassNotFoundException:在路径上找不到类"md55b01af31820394fbfb172542d1258596.MediaPickerActivity":DexPathList [[zip file"/data/app/com.companyname.EClinicForDoctor- 1/base.apk"],nativeLibraryDirectories = [/数据/应用/ com.companyname.EClinicForDoctor-1/LIB /臂,/data/app/com.companyname.EClinicForDoctor-1/base.apk!/lib/armeabi- V7A,/销售商/ lib下,/系统/ lib中]] ---内部异常堆栈跟踪的末尾在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]在<657aa8fea4454dc898a9e5f379c58734>:0在Java.Interop .JniEnvironment + StaticMethods.CallStaticObjectMethod(Java.Interop.JniObjectReference类型,Java.Interop.JniMethodInfo方法,Java.Interop.JniArgumentValue*args)[0x00069]位于<54816278eed9488eb28d3597fecd78f8>:0,位于Android.Runtime.JNIEnv.CallStaticObjectMethod(System.IntPtr) jclass,System.IntPtr jmethod,Android.Runtime.JValue*parms)[0x0000e] in :0在Android.Runtime.JNIEnv.CallStaticObjectMethod(System.IntPtr JCLASS,System.IntPtr jmethod,Android.Runtime.JValue [] PARMS)[0x00017]中:0在Android.Runtime.JNIEnv.FindClass(System.String类名) [0x0003d] in:0:Android.Runtime.JNIEnv.FindClass(System.Type type)[0x00084] in:0 at Java.Lang.Class.FromType(System.Type type)[0x00022] in:0
at Android.Content .Intent..ctor(Android.Content.Context packageContext,System.Type type)[0x00000] in:0 in Plugin.Media.MediaImplementation.CreateMediaIntent(System.Int32 id,System.String type,System.String action,Plugin. Media.Abstractions.StoreMediaOptions选项,System.Boolean任务)[0x00000]在C:\项目\ mediaplugin\SRC\Media.Plugin.Android\MediaImplementation.cs:411在Plugin.Media.MediaImplementation.TakeMediaAsync(System.String类型, System.String action,Plugin.Media.Abstractions.StoreMediaOptions options)[0x00044]在C:\ projects\mediaplugin\src\Media.Plugin.Android\MediaImplementation.cs:470 in Plugin.Media.Med iaImplementation + d__17.MoveNext()[0x000ab]在C:\ projects\mediaplugin\src\Media.Plugin.Android\MediaImplementation.cs:153---抛出异常的上一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(系统)的<657aa8fea4454dc898a9e5f379c58734>中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]中.Threading.Tasks.Task任务)[0x0003e]在<657aa8fea4454dc898a9e5f379c58734>:0在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task任务)[0x00028]在<657aa8fea4454dc898a9e5f379c58734>:0在System.Runtime .CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task任务)[0x00008] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter`1 [TResult] .GetResult()[0x00000] in <657aa8fea4454dc898a9e5f379c58734>: 0在EClinicForDoctor.Pages.VisitsPage + d__17.MoveNext()[0x00175]在E:\ Doctor Project\Mobile Applications\v1\4\EClinicForDoctor\EClinicForDoctor\EClinicForDoctor\Pages\VisitsPage.xaml.cs:235 --- End of管理Java.Lan g.ClassNotFoundException堆栈跟踪--- java.lang.ClassNotFoundException:md55b01af31820394fbfb172542d1258596.MediaPickerActivity at java.lang.Class.classForName(Native Method)at java.lang.Class.forName(Class.java:324)at md5270abb39e60627f0f200893b490a1ade.ButtonRenderer_ButtonClickListener.n_onClick (本机方法)at md5270abb39e60627f0f200893b490a1ade.ButtonRenderer_ButtonClickListener.onClick(ButtonRenderer_ButtonClickListener.java:30)在Android.view.TextView.performClick(TextView.java:10826)的android.view.View.performClick(View.java:5697).在Android.os.Hoo上的android.os.Handler.dispatchMessage(Handler.java:95)的android.os.Handler.handleCallback(Handler.java:739)上查看$ PerformClick.run(View.java:22526) .loop(Looper.java:158)在android.app.ActivityThread.main(ActivityThread.java:7225)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run(ZygoteInit.java:1230)at com.android.internal.os.ZygoteInit.ma in(ZygoteInit.java:1120)引起:java.lang.ClassNotFoundException:路径上没有找到类"md55b01af31820394fbfb172542d1258596.MediaPickerActivity":DexPathList [[zip file"/data/app/com.companyname.EClinicForDoctor-1/base的apk"],nativeLibraryDirectories = [/数据/应用/ com.companyname.EClinicForDoctor-1/LIB /臂,/data/app/com.companyname.EClinicForDoctor-1/base.apk!/lib/armeabi-v7a,/在java.lang.ClassLoader.loadClass(ClassLoader)的java.lang.ClassLoader.loadClass(ClassLoader.java:511)的dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)上的vendor/lib,/ system/lib] .java:469)... 14更多抑制:java.lang上的java.lang.ClassNotFoundException:md55b01af31820394fbfb172542d1258596. java.lang.Class.classForName(Native Method)中的MediaPickerActivity java.lang.BootClassLoader.findClass(ClassLoader.java:781) .lang.BootClassLoader.loadClass(ClassLoader.java:841)at java.lang.ClassLoader.loadClass(ClassLoader.java:504)... 15更多引起:java.lang.NoClassDefFoundError:Clas 使用引导类加载器找不到; 没有可用的堆栈跟踪}
然后我从github读取插件的指令,它与视频的指令类似,并发生相同的错误.怎么能解决这个问题?
尝试删除项目的bin obj文件夹.
您的编译代码和NuGet位于obj,bin文件夹中.有时当你添加任何新的NuGet时,它不会进入obj,bin文件夹.它只使用早期编译的NuGet作为bin和obj的缓存.删除所有bin,obj force编译器以创建新的bin obj文件夹并重新编译解决方案.每当你在解决方案中添加任何新的NuGet时,最好删除bin,obj.
| 归档时间: |
|
| 查看次数: |
1658 次 |
| 最近记录: |