2015-05-26 19 views
11

Ich erhalte eine "Konnte ein Android SDK nicht finden, bitte stellen Sie sicher, es ist installiert" Fehler beim Versuch, Calabash-Android-Befehle auszuführen. Ich habe das Android SDK über brew installiert. Hier ist der Inhalt meiner .bash_profile:Android SDK Pfad Problem bei Verwendung von Calabash-Android

ANDROID_HOME=/usr/local/Cellar/android-sdk/24.2 
PATH=$PATH:$ANDROID_HOME/tools 
PATH=$PATH:$ANDROID_HOME/platform-tools 
PATH=$PATH:$ANDROID_HOME/build-tools 

if [ -f ~/.bashrc ]; then 
     source ~/.bashrc 
fi 

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile 

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

PATH=$PATH:/usr/local/apache-ant-1.9.4/bin 
PATH=$PATH:/usr/local/share/npm/bin 
JAVA_HOME=/usr/libexec/java_home 

export PATH 

Hier ist mein $ PATH:

echo $PATH 
/Users/mchumak/.rvm/gems/ruby-2.1.1/bin:/Users/mchumak/.rvm/gems/[email protected]/bin:/Users/mchumak/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/Cellar/android-sdk/24.2/tools:/usr/local/Cellar/android-sdk/24.2/platform-tools:/usr/local/Cellar/android-sdk/24.2/build-tools:/Users/mchumak/.rvm/bin:/Users/mchumak/.rvm/bin:/opt/local/bin:/opt/local/sbin:/Users/mchumak/.rvm/bin:/usr/local/apache-ant-1.9.4/bin:/usr/local/share/npm/bin 

"die Android" produziert:

/usr/local/bin/android 

Der Inhalt dieser bestimmten Datei sind:

#!/bin/bash 
TOOL="/usr/local/Cellar/android-sdk/24.2/tools/android" 
exec "$TOOL" "[email protected]" 

Ich kann t laufen Er Android SDK Manager von der Befehlszeile aus, und es zeigt den richtigen SDK-Pfad (/usr/local/Cellar/android-sdk/24.2).

Ich bin ratlos. Irgendwelche Ideen, warum calabash-android das SDK nicht finden kann?

+0

Calabash verwendet adb. Funktioniert Adb ordnungsgemäß? Und was bringt 'adverb' zurück? – alannichols

+0

@alannichols Ich kann einen Server mit adb erfolgreich starten. 'which adb' gibt'/usr/local/bin/adb' zurück. Der Inhalt dieser Datei ist 'PLATFORM_TOOL = '/ usr/local/Keller/android-sdk/24.2/platform-tools/adb" ' ' test -x "$ PLATFORM_TOOL" && exec "$ PLATFORM_TOOL" "$ @" ' 'echo" Es scheint, Sie haben 'Android SDK Platform-Tools' nicht installiert. "' 'echo" Verwenden Sie das 'android' Tool, um sie zu installieren: "' 'echo" android update sdk --no-ui - -filter 'platform-tools' "' – Towercap

+0

Hmm, meine einzige Vermutung wäre, dass es etwas mit der Verlinkung von zB zu tun hat./usr/local/bin/adb an die Stelle, an der es installiert ist, /usr/local/Cellar/android-sdk/24.2/platform-tools/adb. Können Sie versuchen, die Android-Befehle aus/usr/local/bin/zu entfernen und es erneut zu versuchen? Mein Setup hat nicht die Befehle, die von/usr/local/bin/verlinkt sind, aber abgesehen davon denke ich, dass es gut aussieht. Wenn das nicht funktioniert, würde ich eine manuelle Installation vorschlagen. – alannichols

Antwort

3

Ihr Problem zu beheben,

  1. echo "export PATH=$PATH:/Users/#username/Library/Android/sdk/platform-tools/sdk/platform-tools/" >> ~/.bash_profile

  2. installieren Android-Plattform-Tools ->brew install android-platform-tools

- Achten Sie auch darauf, sich Admin-Rechte haben

0

Betrachten Sie Ihre $ PATH-Ausgabe scheint wie Android SDK-Pfad nicht in PATH geladen. Fügen Sie unten an deine Bash_profile

PATH = $ PATH: $ ANDROID_HOME

+0

Vielen Dank für Ihre Antwort. Ich habe das .bash_profile geändert, um ANDROID_HOME zur PATH-Variablen hinzuzufügen, und habe eine neue Bash-Instanz gestartet, aber leider bekomme ich immer noch denselben Fehler. – Towercap

0
calabash-android run /Users/marcg/Downloads/app-news.apk 

erhielt ich, dass Fehler folgende

konnte kein Plattform-Verzeichnis in '/ Users/marcg/Library/Android/sdk/Plattformen' finden

korrigierte ich dies mit dem Symlink unter:

/Users/marcg/Library/Android/sdk/platforms 
platforms$ ln -s ../platform-tools/ platform 

Ich lief immer eine Fehlermeldung erhalten, dass das Android-Gefäß wurde aus einem Standard-Verzeichnis von /Users/marcg/Library/Android/sdk/platforms

fehlt ich dann kopiert, dass android.jar zu diesen Plattformen dir

DuFormal jetzt wie folgt aussieht:

/Users/marcg/Library/Android/sdk/platforms 
us164912:platforms marcg$ ls -l 
total 49640 
-rwxr-xr-x 1 marcg Users 25409822 Oct 5 09:26 android.jar 
lrwxr-xr-x 1 marcg Users  18 Oct 5 09:14 platform -> ../platform-tools/ 

Noch immer

noch nicht gefunden 'android.jar' in jedem Standard-Verzeichnis '/ Users/marcg/Library/Android/sdk/Plattformen'.Calabash wird daher länger dauern

ich die android.jar zum platform-tools Verzeichnis kopiert zu laden und verbleibende Fehler ging weg.

Schritte zu beheben:

  1. einen Symlink in Plattformen machen, dass
    ln -s ../platform-tools/ platform
  2. Kopieren Sie die android.jar auf die Plattform-Tools-Plattform-Tools Punkte werden dir

Würde besser, wenn das Framework es Ihnen erlaubt, über eine Datei oder zusätzliche env vars zu konfigurieren, wo Sie diese finden können. Mein früherer Versuch, ANDROID_HOME zu den platform-tools dir zu setzen, hat nicht funktioniert und warum ich einen symlink gemacht habe.

+0

ANDROID_HOME sollte auf das Verzeichnis sdk verweisen, nicht auf das Verzeichnis dir – Tobias

Verwandte Themen