wake-up-neo.net

"Java.exe" wurde mit Code 2 Xamarin.Android-Projekt beendet

ich habe also mein Projekt Xamarin.Android, das mehrere Bibliotheken enthält. Wenn ich versuche zu bauen, erhalte ich eine Fehlermeldung, die besagt, dass "Java.exe" mit Code 2 beendet wurde. 

Nach ein paar Stunden Google-Recherche fand ich heraus, dass ich Multidex aktivieren kann. http://www.jon-douglas.com/2016/09/05/xamarin-Android-multidex/

Laut dem Blogeintrag behandelt Android API Level> 21 Multidex selbst. Nun, meine Erfahrung ist, dass dies nicht der Fall ist. Ich baue auf API Level 25 und bekomme immer wieder die gleichen Fehler mit denselben Informationen. Die Schritte im Artikel helfen nicht. Es scheint, als würde Xamarin.Android Multidex nicht unterstützen. 

Es scheint, als müssten Sie mit Multidex alleine umgehen, aber ich habe keine Lösung gefunden, die funktioniert. Hat jemand eine Lösung gefunden, die funktioniert? 

Ich verwende Xamarin 4.6 und Visual Studio 2017.

13
Daniel_97

Die Antwort wurde nach etwa 20 Stunden Suche in meinem Projekt gefunden. So, hier sind die Schritte zur Behebung des Problems "Java.exe" mit Code 2 beendet

1) Ändern Sie die MainDexClasses.bat wie im Link beschrieben:

http://www.jon-douglas.com/2016/09/05/xamarin-Android-multidex/

2) Stellen Sie sicher, dass Sie die Multi-Dex-Option in Ihrer Android-Anwendung aktiviert haben - !!! Schauen Sie sich die .csprj-Datei an, wenn MultiDex auf true gesetzt ist (in meinem Fall war es nicht einmal der Fall, wenn ich Multi-Dex aktiviert habe).

3) Fügen Sie Ihrer AndroidManifest-Datei den folgenden Teil hinzu

<application Android:name="Android.support.multidex.MultiDexApplication"></application>

Dadurch wird Ihr Android-Projekt angewiesen, die angegebene MultiDex-Option tatsächlich zu verwenden.

Nach einem Clean und Build konnte ich meine Anwendung so ausführen, wie sie ist.

23
Daniel_97

Nachdem ich diese Frage und die Antwort von @ Daniel_97 gefunden hatte, konnte ich diesen Fehler nur durch Hinzufügen von multidex zum Projekt beheben, ohne MainDexClasses.bat zu ändern:

  1. Aktivieren Sie die Option in den Projektoptionen:

 Check the option in Project Options:

  1. MultiDexApplication zu Android Manifest hinzufügen:

    <application Android:name="Android.support.multidex.MultiDexApplication"></application>
    

Hinweis Ich habe diesen Fehlercode 2 in Visual Studio für Mac und unter Windows die gleiche App erfolgreich erstellt. (Warum?)

14
Micer

Ich gehe nur zu Option> Erstellen> Android Build und aktivieren Sie das Kontrollkästchen Multi-Dex aktivieren 

8
Vermoric Huynh

In meinem Fall war die Lösung das Deaktivieren der "Signieren der .APK-Datei mit den folgenden Keystore-Details". Da der Schlüsselspeicherort und/oder das Kennwort falsch waren, wurde Java.exe mit Code 2 beendet.

 enter image description here

Mein .csproj Datei hatte einen Eintrag für den KeyStore, der nicht mehr gültig war, obwohl das Klicken mit der rechten Maustaste auf das Projekt und das Überprüfen der Eigenschaften darauf hindeuteten, dass ich auf den neuen Speicherort verwiesen hatte.

Suchen Sie in .csproj nach allen Instanzen von <AndroidSigningKeyStore> und entsprechend aktualisieren.

7
Le-roy Staines

Ich habe ziemlich lange mit diesem Problem zu kämpfen. Ich habe die Ursache des Fehlers beim Signieren gefunden - als ich Project Repo von der Firma TFS geklont habe, hatte Android csproj-Datei Einträge für die KeyStore-Einstellungen und den Speicherort. Ich hatte den Keystore und den Speicherort nicht auf meiner Laufwerk war ungültig. Visual Studio kann die App dann während der Bereitstellung nicht signieren und gab mir statt einer Art FileNotFoundException nur Java mit Code 2 beendet. Also ...

tl; dr: Gehe zu Android= Projekteigenschaften, wähle das Paket aus, das signiert, und deaktiviere "Signiere die APK-Datei ..." (das ändert csproj <AndroidKeyStore>true</AndroidKeyStore> auf false) und voila, können Sie jetzt Ihre Lösung ausführen.

enter image description here

3
Klemikaze

Deaktivieren Sie das Signieren der APK-Datei mit den folgenden Schlüsselspeicherdetails als @Klemikaze

1
Java_Dude

Ordnen Sie den Pfad des für mich bearbeiteten Keystores neu zu 

== EDIT 01 ==

Doppelklicken Sie auf Android Project> Android Package Signing 

Weiß nicht, warum der Pfad auf dem Keystore-Pfad war, aber anscheinend war der Pfad falsch. Ich wähle die .keystore-Datei erneut aus demselben Pfad aus, und der Fehler "Exited with code 2" ging weg und ich konnte zur Freigabe archivieren

1

In meinem Fall waren die Details zu den Keystores falsch, nach dem Speichern -> Reinigen -> Gebäudeprozess hat es funktioniert.

0
100RaBH

Ich hatte diesen Fehler beim Wechsel von VS Mac zu VS Windows.

Beim Thema Umstieg von VS Mac auf VS Windows wurde "Java.exe" mit Code 2 beendet

Das Problem stammte aus Android.csproj und dem Keystore Path.
Es wurde auf meinen Mac-Pfad gesetzt, auch wenn ich ihn geändert habe

VSWindows AndroidProject => Eigenschaften => Anmelden

Also habe ich diese Zeilen auf Android.csproj entfernt (bearbeitet mit dem dritten Texteditor):

<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>

Beim Debug & Release Teil.

Dann können Sie sie unter VS Windows bearbeiten.

Hoffe ich habe jemandem geholfen. Tschüss

0
G Clovs

Bitte aktualisieren Sie Ihr Visual Studio auf die neueste Version, falls Sie noch eine alte Version verwenden.

Wenn Sie der Meinung sind, dass es keine Lösung gibt, aktivieren Sie die Variable Multidex.

0
Zumry Mohamed

Setzen Sie den Keystore zurück oder ändern Sie den Schlüssel auf true .____. Nur zur Überprüfung. Aber daran zu erinnern, dass es auf wahr gesetzt werden muss.