C# android NullPointerException:尝试调用虚拟方法-空对象引用

C# android NullPointerException:尝试调用虚拟方法-空对象引用,c#,android,C#,Android,不知道我为什么会出错。让我知道如何修复此错误?我假设,这是一个覆盖问题或安卓流量问题。希望有人能给我指出正确的方向 我得到的全部错误是: error Java.Lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference at Java.Interop.JniEn

不知道我为什么会出错。让我知道如何修复此错误?我假设,这是一个覆盖问题或安卓流量问题。希望有人能给我指出正确的方向

我得到的全部错误是:

error Java.Lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
  at Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0006e] in <94b04e1756104d1fa1d144932ae2720c>:0 
  at Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x00000] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/Android.Runtime/JNIEnv.g.cs:264 
  at Com.Theartofdev.Edmodo.Cropper.CropImage+ActivityBuilder.Start (Android.App.Activity p0) [0x00048] in <658bb62a76e541a59bbd18d879a75b72>:0 
  at Test02_IDWalletCard.Droid.ImageCropperImplementation.ShowFromFile (Test02_IDWalletCard.Library.ImageCropper imageCropper, System.String imageFile) [0x000a1] in C:\Users\ikhla\source\repos\Test02_IDWalletCard\Test02_IDWalletCard\Test02_IDWalletCard.Android\ImageCropperImplementation.cs:42 
  --- End of managed Java.Lang.NullPointerException stack trace ---
  
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
    at android.content.ComponentName.<init>(ComponentName.java:130)
    at android.content.Intent.setClass(Intent.java:9891)
    at com.theartofdev.edmodo.cropper.CropImage$ActivityBuilder.getIntent(CropImage.java:471)
    at com.theartofdev.edmodo.cropper.CropImage$ActivityBuilder.getIntent(CropImage.java:463)
    at com.theartofdev.edmodo.cropper.CropImage$ActivityBuilder.start(CropImage.java:486)
    at mono.java.lang.RunnableImplementor.n_run(Native Method)
    at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:30)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7073)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
这是完整的错误代码。它将进入捕捉区。因此,activityBuilder在ShowFromFile()方法中出现错误:

其他一些信息。这是一个中间类平台。最主要的是运行在活动结果上

    namespace Test02_IDWalletCard.Droid
{
    public class Platform
    {
        public static void Init()
        {
            DependencyService.Register<IImageCropperWrapper, ImageCropperImplementation>();
        }

    public static async void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        if (requestCode == CropImage.CropImageActivityRequestCode)
        {
            CropImage.ActivityResult result = CropImage.GetActivityResult(data);

            // small delay
            await System.Threading.Tasks.Task.Delay(TimeSpan.FromMilliseconds(100));
            if (resultCode == Result.Ok)
            {
                ImageCropper.Current.Success?.Invoke(result.Uri.Path);
            }
            else if ((int)resultCode == (int)(CropImage.CropImageActivityResultErrorCode))
            {
                ImageCropper.Current.Faiure?.Invoke();
            }
        }
    }
    }
}
namespace Test02_IDWalletCard.Droid
{
    public class ImageCropperImplementation : IImageCropperWrapper
    {
public void ShowFromFile(ImageCropper imageCropper, string imageFile)
        {
            try
            {
                CropImage.ActivityBuilder activityBuilder = CropImage.Builder(Android.Net.Uri.FromFile(new Java.IO.File(imageFile)));

                if (imageCropper.CropShape == ImageCropper.CropShapeType.Oval)
                {
                    activityBuilder.SetCropShape(CropImageView.CropShape.Oval);
                }
                else
                {
                    activityBuilder.SetCropShape(CropImageView.CropShape.Rectangle);
                }
                ... 

                activityBuilder.Start(CrossCurrentActivity.Current.Activity);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("================================================"+ex.ToString());
            }
           }
    }
}
    namespace Test02_IDWalletCard.Droid
{
    public class Platform
    {
        public static void Init()
        {
            DependencyService.Register<IImageCropperWrapper, ImageCropperImplementation>();
        }

    public static async void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        if (requestCode == CropImage.CropImageActivityRequestCode)
        {
            CropImage.ActivityResult result = CropImage.GetActivityResult(data);

            // small delay
            await System.Threading.Tasks.Task.Delay(TimeSpan.FromMilliseconds(100));
            if (resultCode == Result.Ok)
            {
                ImageCropper.Current.Success?.Invoke(result.Uri.Path);
            }
            else if ((int)resultCode == (int)(CropImage.CropImageActivityResultErrorCode))
            {
                ImageCropper.Current.Faiure?.Invoke();
            }
        }
    }
    }
}
   [Activity(Label = "Test02_IDWalletCard", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            Platform.Init();

            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }

        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            Platform.OnActivityResult(requestCode, resultCode, data);
        }
    }
}