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.
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.
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:
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?)
Ich gehe nur zu Option> Erstellen> Android Build und aktivieren Sie das Kontrollkästchen Multi-Dex aktivieren
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.
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.
Deaktivieren Sie das Signieren der APK-Datei mit den folgenden Schlüsselspeicherdetails als @Klemikaze
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
In meinem Fall waren die Details zu den Keystores falsch, nach dem Speichern -> Reinigen -> Gebäudeprozess hat es funktioniert.
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
<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
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
.
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.