Java.Lang.NoSuchMethodError:没有非静态方法“Landroid/content/Context;.getColorStateList(I)Landroid/content/res/ColorStateList;”

Har*_*waj 4 android xamarin.android xamarin

检查我的日志

Java.Lang.NoSuchMethodError: no non-static method "Landroid/content/Context;.getColorStateList(I)Landroid/content/res/ColorStateList;"
01-11 12:48:49.249 I/MonoDroid( 9688):   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <fcbf47a04b2e4d90beafbae627e1fca4>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Java.Interop.JniEnvironment+InstanceMethods.GetMethodID (Java.Interop.JniObjectReference type, System.String name, System.String signature) [0x0005b] in <3cb12bce834a498199b2be6cd3e00922>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Java.Interop.JniType.GetInstanceMethod (System.String name, System.String signature) [0x0000c] in <3cb12bce834a498199b2be6cd3e00922>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Java.Interop.JniPeerMembers+JniInstanceMethods.GetMethodInfo (System.String encodedMember) [0x00031] in <3cb12bce834a498199b2be6cd3e00922>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00006] in <3cb12bce834a498199b2be6cd3e00922>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Android.Content.Context.GetColorStateList (System.Int32 id) [0x00022] in <551e90b840814b76a3d15b7bbaa8a77c>:0 
01-11 12:48:49.249 I/MonoDroid( 9688):   at Movo.MapActivity+<OnCreate>d__37.MoveNext () [0x000a6] in C:\Users\MapActivity.cs:85 An unhandled exception occured.
Run Code Online (Sandbox Code Playgroud)

Sus*_*ver 6

上下文为基础的GetColorStateList在API等级23加,因此,如果您尝试执行上较旧的Android版本中,它就会失败那个方法。

现在,在com.android.support:support-compat(版本 24.1+)(通过 Xamarin Nuget Xamarin.Android.Support.Compat)中,有一个基于ContextCompatGetColorStateList 可用于旧(和新)API 级别