5
votes

Xamarin Forms Android Ce type de collectionView ne prend pas en charge les modifications apportées à son sourceCollection à partir d'un thread différent du thread du répartiteur

Voici l'erreur que j'obtiens en essayant d'archiver mon application pour le déploiement.

 erreur sur l'archive Cette erreur n'apparaît à aucun autre moment. Le projet se construit et s'exécute sur des émulateurs et des appareils sans problème. Cette erreur n'a aucun contexte ni aucune direction quant à l'endroit où chercher pour la corriger. Il est également apparu au hasard de nulle part, la dernière fois que j'ai construit / archivé (sans changement fonctionnel), cette erreur ne s'est pas produite.

La principale différence entre cet archivage et le précédent est une version plus récente de VS 2017. Je ne me souviens pas exactement de la version d'avant, mais je suis actuellement sur 15.9.4 (stable).

En regardant autour des interwebs, j'ai trouvé que cette erreur semble avoir quelque chose à voir avec ObservableCollection, qu'il y a probablement 10-ish dans mon application. Je ne sais pas vraiment quoi faire ici, car cela n'a jamais été un problème auparavant, et je suis sur une date limite et avec la structure de l'application, je ne suis pas en bonne position pour commencer à apporter des changements fonctionnels.

<₹EDIT

J'ai également nettoyé et reconstruit ma solution, ainsi que la suppression de tous les dossiers bin / obj dans mes projets xamarin. Même essayé de supprimer le dossier .vs, ce qui peut parfois aider. Mais toujours pas.

Je vais essayer de mettre à jour VS vers 15.9.5 et voir si cela a peut-être été corrigé dans une version.

<₹ MODIFIER 2

La mise à jour de VS 2017 vers 15.9.5 n'a fait aucune différence.

<₹ MODIFIER 3

J'ai demandé à mon collègue d'essayer d'archiver exactement le même projet sur sa machine (exécutant VS 2017: 5.9.3, et il s'est bien archivé pour lui. Jusqu'à présent, c'est la seule différence que nous avons pu trouver entre nos environnements.

/ p>


3 commentaires

Avez-vous essayé d'utiliser «réparer» dans le programme d'installation de Visual Studio (ouvrez le programme d'installation de Visual Studio, cliquez sur «plus», cliquez sur la réparation)? Si ce problème persiste, vous pouvez vous référer à ce lien, docs.microsoft.com/en-us/visualstudio/productinfo/... , puis installez une version antérieure VS 2017


Tentative maintenant. J'espère vraiment que cela fonctionne, car c'est un énorme inconvénient d'avoir à restaurer VS.


dans mon cas, si vous cochez l'option MultiDex dans la configuration de compilation, le retour au travail fonctionne ...


5 Réponses :


0
votes

La suggestion de Leon Lu a fonctionné. Je ne l'aime pas particulièrement, car cela a pris une éternité et la réparation vous restaure essentiellement une installation de base (pas d'extensions ni de personnalisations). Cela a pris environ 1,2 heure, mais une fois cela fait, j'ai pu à nouveau archiver mon application Android. Je suppose que quelque chose s'est mal passé dans vs à un moment donné, peut-être lors d'une mise à jour. Il n'y a aucun moyen de le dire.


1 commentaires

En fait, ce n'était pas une solution complète, je ne suis pas en mesure de construire avec la même erreur.



5
votes

J'ai vu le même problème en utilisant VS2017 15.9.9. Même le même code qui a pu être archivé il y a une semaine a généré l'erreur mentionnée ci-dessus. Il semble lié aux données locales de la solution. Une version "claire" n'était pas suffisante. Cependant, la suppression manuelle des dossiers locaux obj et bin suivie de l'archivage (la construction se fait implicitement) a résolu le problème pour moi.


2 commentaires

Cela semble être la solution la plus cohérente. Merci.


Cela ne m'a pas aidé non plus. J'ai supprimé bin, obj, .vs, nettoyé, cyclé VS, etc. Assez bloqué.



2
votes

Pour ma part, la fermeture de Visual studio et la suppression du dossier caché .vs l'ont fait.

Il s'agit en fait d'un correctif pour de nombreux problèmes liés à l'utilisation de Xamarin.

J'ai eu cet autre problème où je ne pouvais pas archiver parce que le processus de construction se bloquait et ne se terminait jamais. La suppression du dossier .vs l'a fait aussi. https://github.com/xamarin/xamarin-android/issues/1760


0 commentaires

0
votes

J'ai essayé TOUTES les idées ci-dessus, mais je n'ai eu aucune chance fiable avec aucune d'entre elles.
J'ai constaté que Microsoft avait eu le problème signalé (voir lien ci-dessous). Après une tonne de temps à brûler, j'ai publié sur le lien ci-dessous une façon de contourner ce problème de construction d'archives.

Comme les autres correctifs, ce n'est pas tout à fait logique et rien de ce que vous pensez ne fonctionnerait, mais j'ai trouvé le processus répétable, ce qui est en or pour moi avec des délais serrés et n'ayant pas le temps pour cela.

MS Problème de la communauté de développeurs Visual Studio 507708

Publié un samedi matin, signe qu'il faut vraiment contourner ce problème de toute urgence. J'espère que cela vous aidera aussi.


0 commentaires

1
votes

Allez simplement à la propriété du projet puis allez dans les options Android-> Sélectionnez Avancé puis augmentez la taille du tas Java Max à 2G / 3G -> cela fonctionne pour moi.


0 commentaires