Frage Cordova-Plattform hinzufügen Android funktioniert nicht, während Android-Ziele auflisten


Ich habe ein Problem, wenn ich meiner phoneGap-Anwendung eine Android-Plattform hinzufügen möchte. Ich habe diese Nachricht in meinem CLI, wenn ich den Befehl cordova plattform add android ausführen:

Checking Android requirements... (Error: An error occurred while listing Android targets)

Ich versuche bereits, meine Android-SDK-Position in der Pfadvariablen hinzuzufügen.

Bitte hilf mir ! : D

Ich arbeite auf Windows 7 64 Bit, ich installiere die Android API 17, 18 und 19 mit dem Android SDK. Ich bin auf 3.2 phoneGap Version.


75
2017-12-02 08:28


Ursprung


Antworten:


Um zu arbeiten, muss dieser cordova Befehl einige Programme benutzen, die in Ihrem lokalisiert werden sdk/tools Verzeichnis. Du musst auch installiert haben Apache Ameise.

Dann müssen Sie diese Verzeichnisse zu Ihrem hinzufügen PATH Systemvariable:

Hintergrund:

  • Nehmen wir an, Sie haben Ihre installiert Android SDK zum c:\sdk\android Verzeichnis
  • du hast dich installiert Apache Ameise zum c:\tools\apache-ant Verzeichnis

Dann müssen Sie zwei Systemvariablen erstellen:

  1. ANDROID_HOME mit dem c:\sdk\android Wert
  2. ANT_HOME mit dem c:\tools\apache-ant Wert

Abschließend müssen Sie das ändern PATH Variable und füge diese beiden am Ende der PATH' Wert:

;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

HINWEIS: Für diejenigen, die Linux verwenden, unterscheidet sich der Befehl ein wenig.

Weitere Dokumentation verfügbar Hier.


167
2017-12-02 16:29



Für die Auserwählten, die Linux-Entwicklungsumgebung bevorzugten

Bedarf

Zuallererst benötigen Sie ein paar Dinge, um loszulegen. Sie sind: Android SDK und Apache Ant. Natürlich wirst du brauchen Java SDK (JDK) installiert.

Damit das Android SDK für alle Benutzer funktioniert, müssen Sie das Android SDK ändern /etc/environment Datei und starten Sie Ihren PC neu. Aber wenn Sie das nicht wollen - folgen Sie mir und denken Sie an sich als den einzigen PC-Benutzer. Und benutzen /home/YOUR_USERNAME/.bashrc zu bearbeitende Datei

Erinnern wir uns einmal an Ihren Heimweg, um weitere lange Schlangen zu vermeiden. Fügen Sie dieses zu Ihrem hinzu /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

Wir werden dann die $HOME Notation, wenn wir sagen wollen "/home/YOUR_USERNAME directory".

Android SDK einrichten

Laden Sie das Android SDK-Archiv herunter und entpacken Sie es irgendwo. Lassen Sie uns sagen, yo Ihr Home-Verzeichnis, $HOME/adt-bundle/.

Fügen Sie diese Zeilen zu Ihrer hinzu $HOME/.bashrc:

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

Ant einrichten

Laden Sie wie im Android SDK ein Archiv herunter und entpacken Sie es in Ihr Home-Verzeichnis. Dann füge diese zu deinem hinzu .bashrc:

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

Ich habe eine über die installiert apt-get also hat das meine nicht beeinflusst .bashrc.

Änderungen übernehmen

Damit diese Änderungen funktionieren, sollten Sie entweder in einem neuen Terminalfenster arbeiten (geöffnet) nach die Änderungen) oder laufen source ~/.bashrc Änderungen im aktuellen Terminalfenster verfügbar machen.

Aufwickeln

Am Ende wirst du:

  1. Zwei Verzeichnisse in Ihrem Home-Verzeichnis - ant und android-bundle
  2. Ein paar Zeilen, hinzugefügt zu Ihrem .bashrc:

    export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    
    export ANT_HOME="$HOME/ant"
    export PATH="$PATH:$ANT_HOME/bin"
    

42
2018-01-15 16:09



Führen Sie den Befehl "android" aus Ihrem Ordner "adt \ sdk \ tools" aus und installieren Sie die neuesten Tools und das neueste SDK. Stellen Sie außerdem sicher, dass Ihr PATH die richtigen Variablen hat.

Dazu benötigen Sie ANT, ein JAVA JDK und ein Android SDK installiert

JAVA_HOME (C: \ Programme \ Java \ jdk)

ANT_HOME ({Ameisenstandort} \ Apache \ Apache-Ant)

ANDROID_HOME ({Android SDK-Standort} \ Android-SDK)

Fügen Sie diese Ihrer PATH-Variablen wie% ANT_HOME% / bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ plattform-tools;% JAVA_HOME% \ bin hinzu

Schließe und öffne deine cmd und führe deinen Befehl erneut aus.

Ähnlich zu PhoneGap / Cordova Android Entwicklung 


21
2018-02-06 20:47



Ich bin mir nicht sicher, ob das Ihr Problem ist, aber ich habe ähnliche Fehler festgestellt, wenn der cordova-Bibliothekscache mit etwas beschädigtem verschmutzt wird. Um es zu beheben, müssen Sie nur den Cordova-Cache löschen, und das nächste Mal, wenn Sie 'cordova' verwenden, wird es automatisch neu befüllt.

Unter OS X ist dieses Verzeichnis ~ / .cordova. Unter Windows nehme ich an, dass .cordova immer noch im Home-Verzeichnis Ihrer Benutzer vorhanden ist.


4
2017-12-02 08:52



Die Antwort lautet "All of the Above". Tun Sie wie bei den Umgebungsvariablen erwähnt, tun Sie dies aber auch:

C: \ Benutzer {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework Bearbeiten Sie die Datei project.properties und ändern Sie target = android-19 in target = android-20.

Vermutlich muss dies auch für die nächste Version von Android SDKs geändert werden, bis dieses kleine Problem gelöst ist.


4
2017-07-17 19:39



Ich hatte das gleiche Problem, obwohl Pfadvariablen genau wie in den Anweisungen festgelegt wurden. Nachdem ich mehrere Dateien durchgegangen bin, habe ich es endlich gelöst. Für mich (Windows 7 Enterprise 64 Bit) musste ich modifizieren check_reqs.js und create.js von "C: \ Benutzer \ .cordova \ lib \ android \ cordova \ 3.5.0 \ bin \ lib \" Ordner, der den absoluten Pfad für die android.bat enthält. Mein Android SDK befindet sich unter "C: \ Android \ Android-SDK".

In check_reqs.js habe ich modifiziert

child_process.exec('android list targets', function(err, stdout, stderr) {

zu

child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {

In create.js habe ich die Anweisung geändert

return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

zu

return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

Vergessen Sie auch nicht das doppelte "\\" im absoluten Pfad


3
2018-05-27 20:20



Nach einem langen Kampf, nachdem ich alle oben genannten Vorschläge mehr als einmal mit wachsender Verzweiflung gemacht hatte, öffnete ich einfach meinen CMD als Administrator. es funktionierte. Ich glaube, ich habe mich einfach zu "sudo" gewöhnt, bevor ich diesen PC bekommen habe.


2
2018-02-05 16:45



Für diejenigen, die dieses Problem aufgetreten sind, füge ich etwas hinzu, das hilfreich sein kann, in meinem Fall hatten alle Variablen richtig konfiguriert und das war noch nicht in der Lage, Android-Plattform hinzuzufügen, und ich war meine avast Antivirus deaktivieren und puff! Alles lief reibungslos ab. Was passierte, war, dass das Antivirenprogramm die Erstellung der Plattform blockierte.

Wichtig für mich war auch, den PC neu zu starten. ;)

Grüße.


2
2018-03-31 04:36



Ich habe das Problem mit Cygwin / Windows 7 bemerkt. Das Problem rührt von den etwas anderen Arten her, wie Cygwin- und MS-DOS-Shells .bat-Dateien behandeln.

Während "Plattform hinzufügen" ruft cordova "android" auf:

C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js

Wo es "Android-Listenziele" anruft (in Zeile 73)

"android" sollte zu /xx/android-sdk/tools/android.bat oder xx: \ android-sdk \ tools \ android.bat aufgelöst werden. (Und tatsächlich, ich kann "android" auf der MS-DOS-Befehlsshell ausführen - aber nicht in der Cygwin-Shell. Dort muss ich ".bat" hinzufügen.)

"android" ohne ".bat" schlägt in der Cygwin-Shell fehl, da android.exe nicht existiert (nur .bat). Wenn Sie Zeile 73 ändern, um 'android.bat list targets' aufzurufen, lösen Sie Ihr Problem (oder geben Sie eine sinnvolle Fehlermeldung).

Eine andere Problemumgehung besteht darin, Cordova in einer MS-DOS-Shell anstelle von Cygwin-Shell auszuführen.


1
2018-04-28 14:27



Wir haben hier eine Liste von Lösungen, also füge ich meine hinzu. Das war mir nicht klar, bis ich es einfach versuchte. Sie sollten% ANT_HOME% \ bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools der USER PATH-Variablen und nicht einer System-ID hinzufügen. Die System PATH-Variable verkettet automatisch die USER PATH-Variable und übersetzt die Variablen in ihren Wert. Hoffe das hilft jemandem. P.S. Mein Betriebssystem ist Win 7x64


0
2018-06-13 07:37



Dieses Problem tritt normalerweise auf, weil die PATH-Variable nicht für Android SDK festgelegt wurde.

export HOME="/home/yourname"
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

0
2017-09-09 11:27