Исключение `Java.Lang.NoSuchMethodError` при использовании ящика навигации

Я пытаюсь создать navigation drawer с помощью Syncfusion SfNavigationDrawer, но получаю следующее исключение на симуляторе Android.

Java.Lang.NoSuchMethodError: нет метода с именем = 'setClipToOutline' подпись = '(Z) V' в классе Lcom/xamarin/forms/platform/android/FormsViewGroup;

Это мой код:

public class MainPage : ContentPage
{       
    public MainPage()
    {
        SfNavigationDrawer nav = new SfNavigationDrawer();

        StackLayout mainStack = new StackLayout();
        mainStack.Opacity = 1;
        mainStack.Orientation = StackOrientation.Vertical;
        mainStack.HeightRequest = 500;
        mainStack.BackgroundColor = Color.White;

        ObservableCollection<String> list = new ObservableCollection<string>();
        list.Add("Home");


        ListView listView = new ListView();
        listView.WidthRequest = 200;
        listView.VerticalOptions = LayoutOptions.FillAndExpand;
        listView.ItemsSource = list;
        mainStack.Children.Add(listView);

        nav.DrawerContentView = mainStack;


        StackLayout headerLayout = new StackLayout();
        headerLayout.Orientation = StackOrientation.Vertical;

        Image image = new Image();
        image.Source = ImageSource.FromFile("user.png");
        headerLayout.Children.Add(image);

        Label header = new Label();
        headerLayout.Children.Add(header);
        nav.DrawerHeaderView = headerLayout;



        Button imageButton = new Button();
        imageButton.WidthRequest = 50;

        Label homeLabel = new Label();
        homeLabel.Text = "Home";
        homeLabel.FontSize = 15;
        homeLabel.TextColor = Color.White;
        homeLabel.HorizontalTextAlignment = TextAlignment.Center;
        homeLabel.VerticalTextAlignment = TextAlignment.Center;

        StackLayout headerFrame = new StackLayout();
        headerFrame.Orientation = StackOrientation.Horizontal;
        headerFrame.Children.Add(imageButton);
        headerFrame.Children.Add(homeLabel);

        Label mainLabel = new Label();
        mainLabel.Text = "Lorem...";

        StackLayout ContentFrame = new StackLayout();
        ContentFrame.Orientation = StackOrientation.Vertical;
        ContentFrame.BackgroundColor = Color.White;
        ContentFrame.Children.Add(headerFrame);
        ContentFrame.Children.Add(mainLabel);
        nav.ContentView = ContentFrame;

        nav.Position = Position.Left;
        nav.Transition = Transition.SlideOnTop;

        this.Content = nav;

    }
}

Я использую Xamarin.Forms 2.3.0.49 и Syncfusion ES 14.2.0.26. И я должен отметить, что обновление Xamarin и Android build-tools не помогло.


person Akbari    schedule 22.08.2016    source источник


Ответы (2)


У меня такая же проблема. Вот ответ от службы поддержки Syncfusion: сообщаемый сбой «Нет метода с именем setClipOutline» был исправлен в нашем последнем пакете обновления 2 для Essential Studio Volume 2, 2016 г. (версия 14.2.0.32) и доступен для загрузки по следующей ссылке. .

https://www.syncfusion.com/forums/125638/essential-studio-2016-volume-2-service-pack-release-v14-2-0-32-доступно-для-загрузки

Проблема решена.

person PascalT    schedule 02.09.2016

Это известная ошибка в lib. См. последнее сообщение на их форуме здесь. Попробуйте использовать альтернативные решения из эта тема и эта .

Резюмируя по ссылкам:

https://www.syntaxismyui.com/xamarin-forms-masterdetail-page-navigation-recipe/

https://varunrathore.wordpress.com/2015/03/10/xamarin-forms-navigation-drawer/

http://xforms-kickstarter.com/#a-slide-out-menu-using-a-master-detail-page

http://blog.falafel.com/xamarin-creating-a-sliding-tray/

Надеюсь, поможет!

person NightFury    schedule 22.08.2016