首页 > 解决方案 > Xamarin Forms:没有名称='getDrawable'签名='(I)Landroid/graphics/drawable/Drawable;'的方法 在 Landroid/content/Context 类中;

问题描述

我下载了这个项目:https ://github.com/adamped/Instagram ,当我运行它时,我得到了这个异常:

未处理的异常:

Java.Lang.NoSuchMethodError: 没有方法名称='getDrawable' 签名='(I)Landroid/graphics/drawable/Drawable;' 在 Landroid/content/Context 类中;

在这堂课中:

[assembly: ExportRenderer(typeof(Entry), typeof(TextViewCustomRenderer))] namespace Instagram.Droid.Renderers {     public class TextViewCustomRenderer: EntryRenderer  {

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)      {           base.OnElementChanged(e);

            if (Control != null)    
    {
                /*This throws the exception*/Control.Background = Android.App.Application.Context.GetDrawable(Resource.Drawable.rounded_corners);
                Control.Gravity = GravityFlags.CenterVertical;
                Control.SetPadding(10, 0, 0, 0);            }       }

    } }

我尝试将编译版本从 Oreo 更改为 Nougat,但无济于事!

看来我不知道这个异常是关于什么的!

请帮忙。

标签: c#xamarinxamarin.formsxamarin.android

解决方案


getDrawable弃用了。你可以尝试使用这个:

this.Control.Background = ContextCompat.GetDrawable(Forms.Context, Resource.Layout.YourDrawableId);

推荐阅读