Ho questo problema molto strano con il mio codice, ed è un problema piuttosto nuovo, considerando che non l'ho avuto sei mesi fa. Per farla breve, ho creato un'app in Xamarin e l'ho pubblicata circa sei mesi fa su tutti e 3 i negozi (App Store, Google Play e Microsoft Store).JsonSerializationException 'Impossibile trovare un costruttore' su Xamarin.Android
Ieri un utente ha segnalato un problema con l'applicazione Android, e dopo che ho ottenuto che fissa e ricompilato, ora sto incontrando un nuovo errore con Json.NET
L'eccezione è
Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Rowlog.Common.Dtos.CompressedTripData. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'tripCoordinates', line 1, position 19.
E prima che tu me lo chieda, sì Rowlog.Common.Dtos.CompressedTripData ha effettivamente un costruttore senza parametri (beh, non ne ha affatto uno, che sappiamo tutti è la stessa cosa).
E come ho detto, questo è quando carico un oggetto CompressedTripData dal server su un dispositivo Android. Caricare lo stesso identico oggetto su iOS e Windows Phone funziona senza intoppi. Suppongo che debba esserci una modifica recente in Json.NET o Xamarin.Android che sta causando questo problema (le altre app utilizzano ancora le librerie Json.NET da circa sei mesi fa. Non sono sicuro che ci sia anche sono stati aggiornamenti da allora)
Qualcun altro ha riscontrato un problema simile e, in caso affermativo, come l'hai risolto?
Sì, questo era il problema. Grazie, signore, sei davvero un risparmiatore di vita! – Falgantil
Grazie mille per questo - stavo ricevendo questo errore su build di rilascio ma non su build di debug. Mi ha risparmiato un sacco di tempo, poiché gli effetti di queste opzioni di linker non sono evidenti (e stavo per dare a JSON.NET un maggiore appiglio con la deserializzazione). Inizialmente avevo l'impressione che questa impostazione fosse per determinare le DLL collegate al pacchetto di app Android rispetto a un pacchetto di libreria separato ... –