Java SetLocale的NoSuchMethodError异常
在Xamarin中,我创建了以下扩展来动态更改语言环境:Java SetLocale的NoSuchMethodError异常,java,android,xamarin,locale,setlocale,Java,Android,Xamarin,Locale,Setlocale,在Xamarin中,我创建了以下扩展来动态更改语言环境: public static void ToEnglishLocale(this Activity activity) { Locale locale = new Locale("en-US"); Configuration config = new Configuration(); config.SetLocale(locale); activity.BaseContext.Resources.Update
public static void ToEnglishLocale(this Activity activity)
{
Locale locale = new Locale("en-US");
Configuration config = new Configuration();
config.SetLocale(locale);
activity.BaseContext.Resources.UpdateConfiguration(config, activity.BaseContext.Resources.DisplayMetrics);
}
我的目标是API 15的升级,但它失败了,API 15出现以下异常:
Unhandled Exception:
Java.Lang.NoSuchMethodError: no method with name='setLocale' signature='(Ljava/util/Locale;)V' in class Landroid/content/res/Configuration;
有没有其他“统一”的方法来动态更改区域设置?
谢谢 是在api级别17中添加的,因此您会收到错误
您可以使用Android.OS.Build.Version.SdkInt
属性在运行时查找api版本,并且仅当该方法是Android.OS.Build.Version\u code.JellyBeanMr1
或更新版本时才调用该方法。如果不是,您应该设置api级别17中添加的而不是调用SetLocale
,这就是您得到错误的原因
您可以使用Android.OS.Build.Version.SdkInt
属性在运行时查找api版本,并且仅当该方法是Android.OS.Build.Version\u code.JellyBeanMr1
或更新版本时才调用该方法。如果不是,则应设置,而不是调用SetLocale