Próbuję dodać adb do zmiennej PATH OSX

121

Staram się tworzyć dla Androida i chcę dodać adbdo mojego, PATHaby móc go naprawdę łatwo uruchomić. Dodałem wcześniej katalogi, przez co z jakiegoś powodu adbnie chcę być znaleziony. To bardzo frustrujące. Czy ktoś inny miał wcześniej ten problem?

Utworzyłem plik .profilei dodałem do niego następujące elementy.

export PATH = ${PATH}:/Users/simon/Libs/android-sdk-mac_x86/platform-tools/
export PATH = ${PATH}:/Users/simon/Libs/android-sdk-mac_x86/tools

Kiedy sprawdzam ścieżkę do środowiska, widzę następujące informacje:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Libs/android-sdk-mac_x86/tools:/Libs/android-sdk-mac_x86/platform-tools

Więc wiem, że jest dodawany do mojej PATHzmiennej. Teraz, kiedy próbuję biec adb, rozumiem, że nie został znaleziony.

-bash: ./adb: No such file or directory

To bardzo frustrujące. Czy może to być problem z uprawnieniami? Czy ktoś miał ten problem z OSX i Androidem?

skoko
źródło
5
uwaga: wstawianie spacji przed i / lub po znaku równości powoduje problemy. powinno wyglądać następująco: „export PATH = $ {PATH}: / Users / simon / Libs / android-sdk-mac_x86 / tools”
Ben H

Odpowiedzi:

42

Dlaczego próbujesz uruchomić plik „./adb”? To całkowicie pomija zmienną ścieżki i szuka tylko „adb” w bieżącym katalogu. Zamiast tego spróbuj uruchomić „adb”.

Edycja: twoja ścieżka wygląda źle. Mówisz, że dostajesz

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Libs/android-sdk-mac_x86/tools:/Libs/android-sdk-mac_x86/platform-tools

Brakuje części / Users / simon.

Zauważ również, że jeśli masz oba pliki .profile i .bash_profile, tylko ten ostatni zostanie wykonany.

Gumilaka
źródło
Próbowałem zarówno ./adb, jak i adb .. Nic, nie mam pojęcia, co jest w tym złego.
skoko
Gdzie ma się znajdować adb? Sprawdź, czy tam jest i czy ma uprawnienia do wykonywania (przejdź do katalogu i wykonaj ls -l adb).
LaC
1
Jeśli przejdę do katalogu, mogę go uruchomić bez problemu. Oto wynik. -rwxrwxrwx 1 simon staff 179312 28 lutego 02:48 adb
skoko
1
Dzięki za tę odpowiedź. Okazuje się, że były tam zarówno .profile, jak i .bash_profile. Miałem wartości w .profile i tak. Teraz działa. Wielkie dzięki.
skoko
1
Teraz działa, miałem tylko dwa profile. Jeden nadpisał drugiego. Jeśli ktoś to robi, użyj .bash_profile, aby edytować zmienną ścieżki. Postępowałem zgodnie z innym samouczkiem, w którym napisano, że używa się .profile
skoko
298

Dodaj do PATH przy każdym logowaniu

Wersja z pełną kontrolą :

w swoim terminalu przejdź do katalogu domowego

Płyta CD

utwórz plik .bash_profile

dotknij .bash_profile

otwórz plik za pomocą TextEdit

otwórz -e .bash_profile

wstaw wiersz do TextEdit

export PATH = $ PATH: / Users / username / Library / Android / sdk / platform-tools /

zapisz plik i przeładuj plik

źródło ~ / .bash_profile

sprawdź, czy adb został ustawiony w ścieżce

wersja adb


Wersja z jedną wkładką

Powtórz polecenie eksportu i przekieruj dane wyjściowe do dołączenia do pliku .bash_profile i zrestartuj terminal. (nie zweryfikowałem tego, ale powinno działać)

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

Tobrun
źródło
2
Przedostatnim krokiem w powyższym kroku jest „Uruchom ponownie terminal” :)
Brijesh Thakur,
14
Ponowne
uruchamianie
Aktualizacja: Prawdopodobnie to nie działa, ponieważ używasz wielu kart. Każda karta na twoim terminalu ma swoją własną sesję. Więc przeładuj .bash_profile na karcie polecenia „wersja adb”.
Tobrun
2
można użyć export PATH = $ PATH: $ HOME / Library / Android / sdk / platform-tools /, wystarczy skopiować i wkleić i nie trzeba zmieniać nazwy użytkownika
Mohit
1
Usunąłem sdk/platform-tools/bit na końcu, ponieważ dawało mi to ostrzeżenie o bash w Android Studio.
Ryan R
65

Alternatywa: zainstaluj adb w łatwy sposób

Jeśli nie chcesz martwić się o swoją ścieżkę lub ręcznie aktualizować adb, możesz zamiast tego użyć homebrew .

brew cask install android-platform-tools

brizmut
źródło
1
Dużo, DUŻO lepiej, niż próbować majstrować przy PATH, .bash_profile itp. Dzięki!
smets.kevin
yup c [_] ~ ᒡ ◯ ᵔ ◯ ᒢ
Adam Mendoza
FYI, teraz wyświetla się błąd: Błąd: Brak dostępnej formuły o nazwie „Android-platform-tools”. Użyj: napar zainstaluj zamiast tego Caskroom / cask / android-platform-tools
The Hungry Androider
@The Hungry Androider - naprawiono to
brismuth
Nie próbowałem tego, ale zastanawiam się, czy można zainstalować Android Studio, a także Homebrew, zastanawiając się, czy to może stworzyć problem z synchronizacją wersji w przyszłości ... tylko myśl
Kinergy
27

Na moim Macbooku Pro dodałem linie eksportu do ~ / .bash_profile, a nie .profile.

na przykład

export PATH=/Users/me/android-sdk-mac_86/platform-tools:/Users/me/android-sdk-mac_86/tools:$PATH
David Snabel-Caunt
źródło
zabawny. Otworzyłem ten plik ... Dokładna linia już tam była. Myślę, że eclipse dodało to podczas instalacji wtyczki?
skoko
Jest to możliwe, chociaż sam dodałem swoje.
David Snabel-Caunt
Według johnnywey.wordpress.com/2008/04/17/fixing-bash-profile-in-os-x możesz mieć sprzeczne profile
David Snabel-Caunt
Myślę, że właśnie na tym polegał problem. Inna aplikacja (chyba MacPorts) utworzyła .profile
skoko
1
Nie zapomnij zrestartować terminala po dodaniu do PATH.
Adam Johns,
13

Po prostu zakryj każdy, kto znajdzie ten wpis SO podczas korzystania z Android Studio, które zawiera SDK, który zawiera część pakietu aplikacji (w systemie Mac OSX).

Tak jak zauważyli @davecaunt i @ user1281750, ale wstaw następujący wiersz do .bash_profile

export PATH=/Applications/Android\ Studio.app/sdk/tools:/Applications/Android\ Studio.app/sdk/platform-tools:$PATH
scottyab
źródło
Niesamowite! Dzięki scottyab!
rilar
Alternatywnie, znajduje się on w Users / [user] / Android / sdk / platform-tools .... Nie podoba mi się linkowanie do folderu Aplikacje (może to tylko ja).
Adam
13

Odpowiedź dla MAC powinna brzmieć:

  1. Otwórz swój bash_profile za pomocą następujących poleceń: open ~/.bash_profile

  2. Jeśli plik profilu podstawowego nie istnieje, utwórz nowy za pomocą następującego polecenia: touch .bash_profilenastępnie powtórz fazę 1.

  3. Dodaj następujący wiersz: export PATH=/Users/"YOURUSER"/Library/Android/sdk/platform-tools:$PATH

  4. Zrestartuj okno basha i przetestuj, wpisując adb shell

Powodzenia! :-)

Avi Levin
źródło
9

W terminalu przejdź do katalogu domowego

cd
create file .bash_profile

touch .bash_profile
open file with TextEdit

open -e .bash_profile
insert line into TextEdit

export PATH=$PATH:/Users/username/Library/Android/sdk/platform-tools/
save file and reload file

source ~ / .bash_profile jest bardzo ważne, aby sprawdzić, czy adb został ustawiony w ścieżce

adb version

Teraz powinno być dobrze.

kotini tirumula
źródło
8

Używam zsh i Android Studio. Używam zmiennej dla mojej ścieżki Android SDK i konfiguruję w pliku ~/.zshrc:

export ANDROID_HOME=/Applications/Android\ Studio.app/sdk
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH"

Uwaga: pamiętaj, aby nie umieszczać pojedynczych ani podwójnych cudzysłowów wokół określonej ścieżki. Jeśli to zrobisz, to nie zadziała.

colabug
źródło
7

Android Studio v1.2 instaluje narzędzie adb w tej ścieżce:

~/Library/Android/sdk/platform-tools/adb

A więc wygląda to tak:

  1. Uruchom Terminal
  2. Uruchom adb versioni spodziewaj się błędu
  3. touch ~/.bash_profile
  4. open ~/.bash_profile
  5. dodaj powyższą ścieżkę przed „zamykającą”: ​​$ PATH
  6. source ~/.bash_profile
  7. uruchomić adb versioni oczekiwać wyniku

Powodzenia!

nurnachman
źródło
3

Wydaje się, że jesteś wciąż próbuje wykonać adbz ./adb. To prosi powłokę o uruchomienie programu wymienionego adb w bieżącym katalogu roboczym .

Spróbuj po prostu adbbez ./.

sarnold
źródło
Próbowałem tego też. Nic. To naprawdę doprowadza mnie do szału.
skoko
@ user569594: czy ponownie uruchomiłeś powłokę po edycji .profile? (to znaczy, jeśli was echo $PATHprzed adb, widzisz nowych katalogów?)
sarnold
tak, wspomniałem o tym w pytaniu. Pojawia się w echu, bash z jakiegoś powodu po prostu NIE WIDZI GO.
skoko
@ user569594: przepraszam, musiałem zapytać, widziałem, jak ludzie edytują swoje skrypty startowe powłoki, testują swoje zmiany, uruchamiając nową powłokę i zapominają o ponownym uruchomieniu bieżącej powłoki i zastanawiają się, gdzie się nie udaje ... :)
sarnold
Tak, upewniłem się, że uruchomię ponownie. Problem polegał na tym, że miałem dwa profile w moim katalogu domowym. .Bash_profile i .profile
skoko
3

Aby terminal zawsze miał plik ~/.bashrci tam wstaw ścieżkę, której chcesz użyć, dodając:

export PATH=$PATH:/XXX

gdzie XXX to ścieżka, której chcesz użyć.

w przypadku adb, oto czego używam:

export PATH=$PATH:/home/user/Android/android-sdk-linux_x86/platform-tools/

(gdzie „użytkownik” to moja nazwa użytkownika).

programista Androida
źródło
1

Dodałem export PATH=${PATH}:/Users/mishrapranjal/android-sdks/platform-tools/w obu miejscach .bash_profilei .profileupewniłem się, że działa. Nadal nie działało, a potem spojrzałem na wskazówkę sarnolda dotyczącą ponownego uruchomienia terminalu i działało to jak urok. Zaoszczędziło mi to czasu na dodawanie tego za PATHkażdym razem, gdy musiałem biegać adb. Dzięki chłopaki.

Pranjal
źródło
Zamiast ponownie uruchamiać terminal, możesz użyć następującego polecenia, aby ponownie załadować plik: " .bash_profile "
Tobrun
1

wprowadź opis obrazu tutaj

Drugie rozwiązanie wyjaśniono poniżej. Ale kiedy zamykam terminal, zmiana, którą wprowadziłem w zmiennej ścieżki, zostaje utracona. Dlatego wolę pierwszy sposób!

wprowadź opis obrazu tutaj

metys
źródło
Pierwsza metoda działa dla mnie, potem musisz ponownie uruchomić komputer
Seyid-Kanan Bagirov
0

Jeśli wydaje się, że ktoś nie może dostać się do .bash_profilepliku, aby pobrać nowe ścieżki ORAZ masz inne polecenia w tym pliku (np. Polecenia aliasów), spróbuj przenieść instrukcje PATH na początek pliku.

To jedyna rzecz, która mi pomogła. Powodem, dla którego to zadziałało, było to, że miałem kilka literówek w moich poleceniach aliasów i najwyraźniej ten plik zgłasza błąd i kończy pracę, jeśli napotka problem. Dlatego właśnie moje instrukcje PATH nie były uruchamiane. Przesuwając go na górę, pozwól mu działać jako pierwszy.

JoshJoe
źródło