2013-06-04 1 views
2

У меня есть Android приложение с помощью несколько MvxGridView с ItemsSource связаныпроблем с MvvmCross и ссылками на Android

local:MvxBind="ItemsSource Groups;ItemClick ShowGroupCommand" 
    local:MvxBind="ItemsSource Products;ItemClick ShowProductCommand" 

При запуске приложения в режиме выпуска, поведение ссылки = «Не ссылайтесь», размер приложения 20MB! , все работает так, как ожидалось.

Поведение коммутационной связи только на «Связывание только с SDK-ассамблями», размер приложения составляет 7 МБ, но при запуске я получаю неожиданное поведение. Вот некоторые из вывода приложения, которые упоминают проблемы с ItemsSource в MvxGridView, обязательные:

http://pastebin.com/smDf1Ekc

Я знаю связующие варианты в Xamarin (here).

Но я не знаю, что я должен сделать, чтобы заставить его работать.

Я работаю над небольшим пилотным приложением, мне нужно отправить его клиенту, чтобы проверить его. Он не будет выглядеть хорошо, отправляя 20 МБ, когда полное приложение для Android, которое я хочу переписать с помощью Xamarin и MVVMcross, составляет менее 1 МБ. Я уже потратил много времени на эту проблему, не повезло, надеюсь, что кто-то может помочь.

ответ

4

Есть несколько способов обойти это в том числе:

  • используя LinkerPleaseInclude.cs файл - стартер один включен по умолчанию в пакетах NuGet (см LinkerPleaseInclude.cs)
  • с помощью XML-файла компоновщика - как один ReactiveUI использует для MonoTouch - см Linker.xml

Есть также много вопросов и ответов здесь ABOU т это уже:

+0

Спасибо Стюарт. Я уже использовал LinkerPleaseInclude.cs, но я понятия не имел, что именно там указывать, чтобы заставить его работать. Ошибка немного криминальная. Добавление ссылки на INotifyCollectionChanged заставило его работать. Есть ли более простая опция, позволяющая связывать работу только с «Библиотеками SDK», но без добавления кода в LinkerPleaseInclude.cs? Для меня это выглядит немного проблематично, потому что это затрудняет тестирование приложения. Некоторые части приложения (экраны) могут использовать некоторые специфические функции, которые ломают приложение только в этом конкретном месте/использовании. При необходимости я могу открыть другой вопрос. –

+0

«Ошибка немного криминальная». - если вы можете его улучшить, пожалуйста. «Есть ли более простой вариант» - см. Мой существующий ответ - другие могут знать другие ответы, но я вообще стараюсь дать лучший ответ, который я могу. – Stuart

+0

еще раз спасибо Стюарт. Это загадочно для людей с меньшим опытом работы с MVVMCross, как и я. –