webentwicklung-frage-antwort-db.com.de

Xamarin Android-Projekt nicht erfolgreich bauen, Fehler XA4212

In Visual Studio 2017 15.4 läuft alles gut. Aber nach dem Upgrade auf 15.5 kann mein Xamarin-Android-Projekt nicht erfolgreich erstellt werden.

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.
11
Liu Feng

Nach der Antwort von @Ironman geschieht dies mit Xamarin.Android 8.0. Daher habe ich die Eigenschaft in der Projektdatei .csproj im folgenden Abschnitt auf false gesetzt.

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

In den meisten Fällen sollte Sie die Eigenschaft hinzufügen, da diese standardmäßig nicht vorhanden ist. 

Jetzt können Sie die App normal nur mit einer Warnung erstellen und ausführen.

Beachten Sie, dass es sich um andere PropertyGroup - Tags in der .csproj-Datei handelt, die für die Buildbedingungen spezifisch sind. 

Die anderen Build-Eigenschaften und -Konfigurationen finden Sie in https://github.com/xamarin/xamarin-Android/blob/master/Documentation/build_process.md

26
Carlos487

Also bin ich auf diesen Fehler gestoßen, als ich Visual Studio aktualisiert habe. Ich habe es schließlich auf den csproj ausfindig gemacht, der immer noch auf die Version 4.1 von mono.Android verweist. Als ich hineinging und auf die neueste Version (8.1 meines Schreibens) verweist, wurde sie für mich korrigiert. 

<Reference Include="Mono.Android"> <HintPath>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v8.1\Mono.Android.dll<HintPath> </Reference>

0
user2245977

Ich habe das Problem behoben, indem Sie mit der rechten Maustaste auf die Lösung geklickt und die Option Bereinigen ausgewählt haben. Wenn Sie nach dem Bereinigen in einer Meldung gefragt werden, ob das Projekt im Solution Configuration Manager bereitgestellt werden soll, finden Sie Anweisungen zur Behebung dieses Problems hier .

0
Ryan Case

AndroidErrorOnCustomJavaObject:  

Eine boolesche Eigenschaft, die bestimmt, ob Typen implementiert werden können Android.Runtime.IJavaObject ohne auch von .__ zu erben. Java.Lang.Object oder Java.Lang.Throwable:

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

    public void Dispose()
    {
    }
}

Bei True erzeugen solche Typen einen XA4212-Fehler. Andernfalls wird eine XA4212-Warnung generiert.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 8.1 hinzugefügt.

Diese Eigenschaft ist standardmäßig True.

0
Ironman

Ich musste Lava.Lang.object erben und Android.Runtime.IJavaObject entfernen, um das Problem zu beheben.

0
megaKertz