2015-08-19 15 views
5

Mam projekt, który działa dobrze na Androida i WinPhone 8. Gdy próbuję uruchomić na iOS, mam coraz następujący błądMvvmlight i Xamarin.iOS stanie znaleźć domyślny konstruktor

Microsoft. Practices.ServiceLocation.ActivationException: Może nie Rejestracja: nie znaleziono konstruktora publicznego w x

gdzie x jest cokolwiek SimpleIoc.Default.Register<T, TU>(); strumień uderza w pierwszej kolejności. Przeniosłem kod (zgodnie z sugestią w innym miejscu), aby wszystkie połączenia specyficzne dla platformy były wywoływane SimpleIoc w ViewModelLocator.

Dodałem publicznych kuratorów domyślnych w klasach, które skarżą się na błąd (chociaż ustawiłem PreferredConstructor na oryginalny, a nie nowo dodany publiczny ctor).

Mam wrażenie, że ten błąd jest fałszywie pozytywny (coś innego zawodzi, ale wskazuje na ten kod).

Używanie Xam.iOS przez serwer kompilacji (kod pochodzi z VS2015). Xcode uruchamia emulatory 8.3 (może wymagać aktualizacji, aby umożliwić testowanie 8.4).

Odpowiedz

2

Możliwe, że Linker optymalizuje konstruktor, jeśli uważa, że ​​nie jest używany. Spróbuj ustawić opcje Linker na "Nie łącz" i zobacz, czy zrobi to ponownie, lub nawet uruchom instancję klasy w innym miejscu, aby Linker wiedział, że jest używany konstruktor. Niekoniecznie chcesz to zostawić w ten sposób, ale jeśli to wyeliminuje błąd, to przynajmniej poznasz przyczynę.

+1

Dodaj atrybut [Zachowaj] do domyślnego konstruktora, aby uniemożliwić optymalizację linkera. – Softlion

+0

@Steve Morgan, Tried opcje linkera „nie link” nadal jej upaść .. Próbuję uruchomić iPhone build dystrybucyjną na moim iPhone mam przesłać moje IPA na app store i testem-lot pobieranie aplikacji ipa i próba uruchomienia natychmiast się zawiesza ... Jeśli uruchomię moją aplikację na symulatorze, działa dobrze tylko dla dystrybucji, która ją stworzyła, powodując ten problem. Wszelkie sugestie zostaną przywrócone. – Sanket

0

Atrybut [Zachowaj] załatwił sprawę za mnie. Udekoruj konstruktorem i zachowaj ustawienia linkera.

Ten atrybut jest częścią przestrzeni nazw Microsoft.WindowsAzure.MobileServices.

Powiązane problemy