2017-12-09 131 views
8

At Visual Studio 2017 15,4, wszystko idzie fine.But po I upgrated do 15,5, mój Xamarin android projekt nie może zostać ukończona pomyślnie, pokazując:Budowa Xamarin android projekt unsucessfully, błąd XA4212

error XA4212: Type `Android.Support.V4.App.JobIntentService/JobServiceEngineImpl` implements `Android.Runtime.IJavaObject` but does not inherit `Java.Lang.Object` or `Java.Lang.Throwable`. This is not supported. 
+0

Też mam ten sam problem, ale nie mogłem go rozwiązać. Xamarin.Android na VS na Maca. Wszelkie inne porady? – Carlos487

+0

Czy możesz pokazać nam swój pakiet.config/twoich zależności (łącznie z wersją)? –

Odpowiedz

0

AndroidErrorOnCustomJavaObject:

logiczny właściwość, która określa, czy typy mogą realizować Android.Runtime.IJavaObject bez również dziedziczenie z Java.Lang.Object lub Java.Lang.Throwable:

class BadType : IJavaObject { 
    public IntPtr Handle { 
     get {return IntPtr.Zero;} 
    } 

    public void Dispose() 
    { 
    } 
} 

Kiedy prawda, że ​​takie typy wygeneruje błąd XA4212, inaczej zostaną wygenerowane ostrzeżenie XA4212.

Obsługa tej właściwości została dodana w Xamarin.Android 8.1.

Ta właściwość ma domyślnie wartość True.

+0

Co dokładnie muszę zrobić, aby rozwiązać ten problem? –

+0

Dziękuję za odpowiedź. Jak mogę naprawić ten błąd? –

+0

Wystarczy usunąć pakiet Xamarin.Android.JobDispatcher, a następnie dodać go ponownie. pomóż mi. –

12

Po otrzymaniu odpowiedzi @Mronman, dzieje się tak z Xamarin.Android 8.0, więc ustawiam właściwość na false w pliku .csproj projektu w poniższej sekcji.

<PropertyGroup> 
    <!-- Other properties --> 
    <AndroidErrorOnCustomJavaObject>false</AndroidErrorOnCustomJavaObject> 
</PropertyGroup> 

W większości przypadków należy dodać właściwość, gdyż nie istnieje domyślnie.

Teraz możesz normalnie budować i uruchamiać aplikację, tylko z ostrzeżeniem.

Uwaga: istnieją inne znaczniki PropertyGroup w pliku .csproj, które są specyficzne dla warunków kompilacji.

Możesz zobaczyć inne właściwości budować i konfiguracje w https://github.com/xamarin/xamarin-android/blob/master/Documentation/build_process.md

+0

W moim pliku .csproj projektu nie ma właściwości "AndroidErrorOnCustomJavaObject", więc dodaję tę właściwość i ustawię ją na wartość false. Projekt może zostać pomyślnie zbudowany i wdrożony na moim telefonie, ale nie może zostać uruchomiony. –

+0

Dzięki za radę @LiuFeng, poprawię odpowiedź. Czy wyczyściłeś projekt? Czy zaktualizowałeś pakiety nugetów do najnowszej wersji? – Carlos487

+0

Tak, wyczyściłem projekt i wszystkie pakiety nugetów zostały zaktualizowane do najnowszej wersji. Jestem nowy w Xamarin Android i czekam na Twoją pomoc.Dziękuję bardzo. –

0

musiałem Przejmij Lava.Lang.object i usunięte Android.Runtime.IJavaObject aby rozwiązać ten problem.

0

Naprawiłem to, klikając prawym przyciskiem myszy rozwiązanie i wybierając opcję Wyczyść. Jeśli pojawi się komunikat z prośbą o sprawdzenie, czy projekt został wybrany do wdrożenia w Menedżerze konfiguracji rozwiązań po wypróbowaniu, można znaleźć instrukcje, jak rozwiązać ten problem: here.