2013-06-04 3 views
2

J'ai une application Android en utilisant plusieurs MvxGridView avec ItemsSource liésproblèmes avec MvvmCross et barettes sur Android

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

Lorsque l'application en cours d'exécution en mode de sortie, le comportement de lien = « Ne liez pas », la taille de l'application est 20Mo! , tout fonctionne comme prévu. En changeant le comportement du lien vers "Lier uniquement les assemblys SDK", la taille de l'application est de 7 Mo, mais en cours d'exécution, j'obtiens un comportement inattendu. Voici une partie de la sortie de l'application qui mentionnent des problèmes avec le ItemsSource de MvxGridView Reliure:

http://pastebin.com/smDf1Ekc

Je suis au courant des options reliant à Xamarin (here).

Mais je ne sais pas ce que je devrais faire pour que ça marche.

Je travaille sur une petite application pilote, j'ai besoin de l'envoyer au client pour le vérifier. Il ne sera pas bon d'envoyer 20 Mo lorsque l'application Android complète que je veux réécrire avec Xamarin et MVVMcross est inférieure à 1 Mo. J'ai déjà passé beaucoup de temps sur cette question sans aucune chance, j'espère que quelqu'un pourra m'aider.

Répondre

4

Il existe plusieurs façons de contourner ce dont:

  • en utilisant un fichier LinkerPleaseInclude.cs - une entrée on est inclus par défaut dans les packages de NuGet (voir LinkerPleaseInclude.cs)
  • en utilisant un fichier xml Linker - comme celui ReactiveUI utilise pour MonoTouch - voir Linker.xml

Il y a aussi beaucoup de questions et de réponses ici abou t ce déjà:

+0

Merci Stuart. J'utilisais déjà LinkerPleaseInclude.cs mais je n'avais aucune idée de ce qu'il fallait faire pour le faire fonctionner. L'erreur est un peu criptique. L'ajout de la référence à INotifyCollectionChanged l'a fait fonctionner. Existe-t-il une option plus simple pour faire le lien entre les bibliothèques 'SDK' mais sans ajouter de code à LinkerPleaseInclude.cs? Pour moi, cela semble un peu problématique car cela rend l'application difficile à tester. Certaines parties de l'application (écrans) peuvent utiliser certaines fonctionnalités spécifiques qui ne cassent l'application que dans cet endroit particulier/utilisation. Je peux ouvrir une question différente si nécessaire. –

+0

"L'erreur est un peu criptique." - Si vous pouvez l'améliorer, s'il vous plaît faire. "Y at-il une option plus facile" - s'il vous plaît voir ma réponse existante - d'autres peuvent connaître d'autres réponses, mais j'essaie généralement de donner la meilleure réponse possible. – Stuart

+0

merci encore Stuart. C'est énigmatique pour les gens moins expérimentés avec MVVMCross comme moi. –