Xamarin.Plugin.DeviceOrientation icon indicating copy to clipboard operation
Xamarin.Plugin.DeviceOrientation copied to clipboard

Getting a NullReferenceException

Open dush135 opened this issue 4 years ago • 5 comments

I am using this plugin in my xamarin forms app. But when I want to change the orientation to Landscape app getting crash and giving me a NullReferenceException in Android.

Android version 9(Pie) Xamarin.Forms version is 4.2.0.848062

dush135 avatar Oct 17 '19 13:10 dush135

I am getting the same error here NullReferenceException and I am using it in Xamarin Forms Is there a solution ???

CurrentOrientation is null

yagha766 avatar Feb 09 '20 14:02 yagha766

The issues also arises regulary for several of our customers (According to AppCenter Crash Reporting). Therefore, unfortunately we are not able to provide a reproduction. Does anyone have some clue what could possibly be the cause of this issue?

thisisthekap avatar May 18 '20 06:05 thisisthekap

@thisisthekap Could you please provide some information:

  • Which version of Xamarin.Forms do you use?
  • Which platform?

wcoder avatar May 18 '20 08:05 wcoder

@wcoder Currently we are using Xamarin.Forms 4.6.0.726

Here a list of Android devices and OS versions where we detected the issue:

Device OS Version
F11 Pro 9
Galaxy A40 9
Galaxy A50 9
Galaxy A7 (2018) 9
Galaxy J2 Prime 6.0.1
Galaxy Note5 7.0
Galaxy Note8 9
Galaxy S10 9
J8 5.1
Le Max2 6.0.1
M6 7.0
Mate 20 9
MI 8 Lite 9
Mi A2 9
P20 lite 9
VIBE X3 Lite 6.0

Edit:

The issue was never detected on iOS devices.

thisisthekap avatar May 18 '20 08:05 thisisthekap

I experienced the same issue using Xamarin Forms v4.7.0.968 but discovered this line CrossCurrentActivity.Current.Activity = this; within the protected override void OnCreate(Bundle savedInstanceState) MainActivity.cs file for the Android project. This requires the namespace using Plugin.CurrentActivity; . This solved the issue for me and the null reference error no longer appeared when I attempted to force a specific page, in my shared project, to only utilize portrait mode protected override void OnAppearing() { base.OnAppearing(); try { if (Device.Idiom == TargetIdiom.Phone && CrossDeviceOrientation.IsSupported) CrossDeviceOrientation.Current.LockOrientation(Plugin.DeviceOrientation.Abstractions.DeviceOrientations.Portrait); } catch (Exception) { //TODO: log exception } }

P.s. ensure you have the nuget package installed for each project. Xamarin.Forms sample

ccsousa01 avatar Jul 09 '20 12:07 ccsousa01