2017-02-21 23 views
1

Я написал простое приложение для Android, используя MvvmCross. Есть только две активности. Первый - это LoginActivity, который содержит два текстовых поля и кнопку. Он отлично работает при использовании в режиме отладки. Он также работает после архива, когда Linker установлен в None. Проблема заключается в том, что я устанавливаю Linker для запуска приложения SdkAssembilesOnly, но при нажатии кнопки ничего не происходит. Я думаю, что привязка не работает.MvvmCross android linker убивает привязку

<Button 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="Login" 
     local:MvxBind="Click LoginCommand" /> 

В то время как интернет-серфинга я нашел некоторые люди используют LinkerPleaseInclude.cs - то, что я хотел бы добавить к этому классу, чтобы сделать это работает?

ответ

2

Да - добавить LinkerPleaseInclude класс со следующим методом в нем:

public void Include(Button button) 
{ 
    button.Click += (s, e) 
     => button.Text = $"{button.Text}"; 
} 

Кроме того, убедитесь LinkerPleaseInclude имеет атрибут на нем [Preserve(AllMembers = true)].

+0

Огромное спасибо, что это обязательная команда. Внутри кнопки у меня есть запрос HttpClient, который не работает, это также о Linker? – miechooy

+0

Я сомневаюсь в этом ... У меня никогда не было проблем с сборкой ссылок, удаляющей методы HttpClient. Однако мне нужно было бы знать, какой код действительно знать. –

+0

Внутри команды есть код с использованием HttpClient.PostAsync, я также добавил свойство string внутри viewmodel для отображения любой ошибки или действия - вот как я знаю, кнопка нажата becaue в начале метода команды, я пишу «ButtonClicked», но через несколько секунд строка disapear и ничего не случилось и добавил try catch, но ничего не показывает – miechooy