283

I need to run an adb forward command before I could use the ezkeyboard application which allows user to type on the phone using browser.

When I run adb forward tcp:8080 tcp:8080 command I get the adb command not found error message.

I can run android command from terminal. Why adb is not working?

Alex P.
  • 30,437
  • 17
  • 118
  • 169
coure2011
  • 40,286
  • 83
  • 216
  • 349

28 Answers28

392

In my case with Android Studio 1.1.0 path was this

/Users/<username>/Library/Android/sdk/platform-tools

Add the following to ~/.bash_profile

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

Then run

$ source ~/.bash_profile

to load a profile in a current terminal session, or just reopen a terminal

If you are using more modern Z Shell instead of Bash, put it in ~/.zprofile instead.

Denis Kutlubaev
  • 15,320
  • 6
  • 84
  • 70
  • 43
    I also need to run `source ~/.bash_profile` to make it work – Linh Dec 04 '18 at 06:20
  • 1
    @Gowtham Sooryaraj those paths are where the tools are located. Adding them to the PATH variable of your env allows you to access the tools (adb here) whithout the need to give the full path of its location (~/Library/Android/sdk/platform-tools/adb). When you type adb in your terminal, its seeks a similar tool in all the paths of the env PATH variable. I hope it helps :) – n3wbie Jan 10 '20 at 16:27
  • I have to run `source ~/.bash_profile` all the time, what does it do? – Tyler Pfaff Sep 15 '20 at 22:21
  • 3
    @TylerPfaff it reloads your shell profile. Closing your terminal and reopening it has the same effect. – Mike Collins Oct 27 '20 at 21:51
  • On Debian, using Arctic Fox, its: `~/Android/Sdk/platform-tools/adb ` to run an adb command with out it added to path (that's its latest location). So you'll want to `export PATH=~/Android/Sdk/platform-tools:$PATH`. Definitely run a `source ~/.bash_profile` or `source ~/.bashrc`, depending on where you put it, if you don't want to restart your terminal. – Rik Nov 27 '21 at 18:55
  • Append values to `.zprofile` file for those who use zsh – german1311 Jan 27 '22 at 16:10
213

Is adb installed? To check, run the following command in Terminal:

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

If that prints output, skip these following install steps and go straight to the final Terminal command I list:

  1. Launch Android Studio
  2. Launch SDK Manager via Tools -> Android -> SDK Manager
  3. Check Android SDK Platform-Tools

Run the following command on your Mac and restart your Terminal session:

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

Note: If you've switched to zsh, the above command should use .zshenv rather than .bash_profile

Mike Collins
  • 4,108
  • 1
  • 21
  • 28
130

Make sure adb is in your user's $PATH variable.

or

You can try to locate it with whereis and run it with ./adb

kevoroid
  • 5,052
  • 5
  • 34
  • 43
92

I am using Mac 10.11.1 and using android studio 1.5, I have my adb "/Users/user-name/Library/Android/sdk/platform-tools"

Now edit you bash_profile

emacs ~/.bash_profile

Add this line to your bash_profile, and replace the user-name with your username

export PATH="$PATH:/Users/user-name/Library/Android/sdk/platform-tools"

save and close. Run this command to reload your bash_profile

source ~/.bash_profile
Vaibhav Desai
  • 2,334
  • 2
  • 25
  • 29
68

From the file android-sdks/tools/adb_has_moved.txt:

The adb tool has moved to platform-tools/

If you don't see this directory in your SDK, launch the SDK and AVD Manager (execute the android tool) and install "Android SDK Platform-tools"

Please also update your PATH environment variable to include the platform-tools/ directory, so you can execute adb from any location.

so on UNIX do something like:

export PATH=$PATH:~/android-sdks/platform-tools

par
  • 17,361
  • 4
  • 65
  • 80
  • Selected answer should be edited/completed with this, because adb moved for a long time and the adb_has_moved.txt is not there anymore – Serty Oan Feb 02 '15 at 20:13
65

This is the easiest way and will provide automatic updates.

  1. install homebrew

     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. Install adb

     brew install --cask android-platform-tools
    
  3. Start using adb

     adb devices
    
Mohamed Hamdy
  • 137
  • 1
  • 12
Atul
  • 1,477
  • 12
  • 9
25

Type the below command in terminal:

nano .bash_profile

And add the following lines (replace USERNAME with your own user name).

export ANDROID_HOME=/Users/USERNAME/Library/Android/sdk 
export PATH=${PATH}:${ANDROID_HOME}/tools 
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

Close the text editor, and then enter the command below:

source .bash_profile

Anky An
  • 620
  • 7
  • 19
  • The last command is what allowed me to run adb from anywhere in the console. That final tweak was missing in other answers – luis.ap.uyen Nov 10 '21 at 10:43
22

If you don't want to edit PATH variable, go to the platform-tools directory where the SDK is installed, and the command is there.

You can use it like this:

  1. Go to the directory where you placed the SDK:

    cd /Users/mansour/Library/Developer/Android/sdk/platform-tools

  2. Type the adb command with ./ to use it from the current directory.

    ./adb tcpip 5555

    ./adb devices

    ./adb connect 192.168.XXX.XXX

IgniteCoders
  • 4,834
  • 3
  • 44
  • 62
18

This solution is for Mac:

Considering you have already downloaded SDK platform tools & trying to set adb path:

If you want to check the SDK is available or not, just check it by following this path:
User > Library (Hidden folder) > Android > sdk > platform-tools > adb

SDK PATH IMAGE

To set the PATH for the adb command on a macOS system, firstly need to edit your shell configuration file. The default shell on macOS is Bash or Zash.
If you're using Bash, so you will need to edit the ~/.bash_profile file otherwise edit ~/.zprofile in your home directory.

Here's how to do it:

By Terminal:

  1. Open a terminal window and enter the following command:
nano ~/.bash_profile

or

nano ~/.zprofile

This will open the ~/.bash_profile or ~/.zprofile file in the Nano text editor.

  1. Add the following line to the file:
export PATH=~/Library/Android/sdk/tools:$PATH
export PATH=~/Library/Android/sdk/platform-tools:$PATH

Press Ctrl+X to exit the Nano editor, then press Y to save the changes and Enter to confirm the filename.

  1. Run the following command to reload your shell configuration:
source ~/.bash_profile

or

source ~/.zprofile

After you have set the PATH for adb, you should be able to run the adb command from any terminal window.


By Manual:

  1. Go to the Home directory & tap command + shift + . (on Mac system/laptop)
    View IMAGE
  2. Search file ~/.bash_profile or ~/.zprofile & open it.
    View IMAGE
  3. Add required path & save it.
    View IMAGE
export PATH=~/Library/Android/sdk/tools:$PATH
export PATH=~/Library/Android/sdk/platform-tools:$PATH
  1. Run the following command to reload your shell configuration:
source ~/.bash_profile

or

source ~/.zprofile

After you have set the PATH for adb, you should be able to run the adb command from any terminal window.

ankushlokhande
  • 870
  • 5
  • 20
14

For mac users with zshrc file (who don't have bash profile).

  1. Go to your user folder and tap cmd + fn + shift + "." (on Mac laptop keyboard !)

  2. Hidden files are visible, open .zhrc file with a Text Editor

  3. Paste this line, don't forget to change the username between braces :

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

you can save and close the .zhrc

  1. Open terminal and reload the file with this :
source ~/.zshrc

Now you can use adb command lines !

Florian K
  • 2,033
  • 1
  • 9
  • 21
11

Considering you have already downloaded SDK platform tools. These commands are for MAC users.

This command will set ADB locally. So if you close the terminal and open it again, ADB commands won't work until you run this command again.

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

These commands will set ADB globally. So once you run these commands no need to set them again next time.

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

source ~/.bash_profile
Rajeev Shetty
  • 1,534
  • 1
  • 17
  • 27
10

Mac users just open /Users/(USERNAME)/.bash_profile this file in a editor.
and add this line to add path.

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

this is the default path if you install adb via studio. and dont forget to change the username in this line.

Muneef M
  • 1,094
  • 15
  • 17
  • 4
    export PATH="~/Library/Android/sdk/platform-tools":$PATH should do it, no need to change anything – yuzuriha Jul 05 '18 at 06:09
10

You need to install adb first, the new command (in 2021) is:

brew install --cask android-platform-tools

Idan
  • 3,604
  • 1
  • 28
  • 33
9

In my case, I was in the platform-tools directory but was using command in the wrong way:

adb install

instead of the right way:

./adb install
Haris ur Rehman
  • 2,593
  • 30
  • 41
  • 1
    You shouldn’t need to be in the platform-tools directory. That means your PATH isn’t set correctly and you’d be better off following one of the other answers here. – Mike Collins Mar 27 '20 at 15:54
8

On my Mac (OS X 10.8.5) I have adb here:

~/Library/android-sdk-mac_86/platform-tools

So, edit the $PATH in your .bash_profile and source it.

Snowcrash
  • 80,579
  • 89
  • 266
  • 376
7

+ The reason is: you are in the wrong directory (means it doesn't contain adb executor).

+ The solution is (step by step):

1) Find where the adb was installed. Depend on what OS you are using.

Mac, it could be in: "~/Library/Android/sdk/platform-tools"

or

Window, it could be in: "%USERPROFILE%\AppData\Local\Android\sdk\platform-tools\".

However, in case you could NOT remember this such long directory, you can quickly find it by the command "find". Try this in your terminal/ command line, "find / -name "platform-tools" 2> /dev/null" (Note: I didn't test in Window yet, but it works with Mac for sure).

*Explain the find command,

  • Please note there is a space before the "/" character --> only find in User directory not all the computer.
  • "2> /dev/null" --> ignore find results denied by permission. Try the one without this code, you will understand what I mean.

2) Go to where we installed adb. There are 3 ways mentioned by many people:

  • Change the PATH global param (which I won't recommend) by: "export PATH=~/Library/Android/sdk/platform-tools" which is the directory you got from above. Note, this command won't print any result, if you want to make sure you changed PATH successfully, call "export | grep PATH" to see what the PATH is.

  • Add more definition for the PATH global param (which I recommend) by: "export PATH=~/Library/Android/sdk/platform-tools:$PATH" or "export PATH=$PATH:~/Library/Android/sdk/platform-tools"

  • Go to the path we found above by "cd ~/Library/Android/sdk/platform-tools"

3) Use adb:

  • If you change or update the PATH, simply call any adb functions, since you added the PATH as a global param. (e.g: "adb devices")

  • If you go to the PATH by cd command, call adb functions with pre-fix "./ " (e.g: "./ adb devices")

Nguyen Tan Dat
  • 3,780
  • 1
  • 23
  • 24
6

I solved this issue by install adb package. I'm using Ubuntu.

sudo apt install adb

I think this will help to you.

Janaka Pushpakumara
  • 4,769
  • 5
  • 29
  • 34
5

If you are using a mac, try this below command.

source $HOME/.bash_profile

4

in my case I added the following line in my terminal:

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

make sure that you replace "username" with YOUR user name.

hit enter then type 'adb' to see if the error is gone. if it is, this is what you should see: Android Debug Bridge version 1.0.40

...followed by a bunch of commands..and ending with this: $ADB_TRACE comma-separated list of debug info to log: all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp $ADB_VENDOR_KEYS colon-separated list of keys (files or directories) $ANDROID_SERIAL serial number to connect to (see -s) $ANDROID_LOG_TAGS tags to be used by logcat (see logcat --help)

if you get that, run npm run android again and it should work..

michael d.
  • 171
  • 1
  • 3
3

To avoid rewriting the $PATH variables every time you start a terminal, edit your .bash_profile (for Macs, it's just .profile) file under your home directory (~/), and place the export statement somewhere in the file.

Now every time you start terminal, your $PATH variable will be correctly updated. To update the terminal environment immediately after modifying the profile file, type in:

source ~/.profile 
Zorayr
  • 23,770
  • 8
  • 136
  • 129
3
nano /home/user/.bashrc  
export ANDROID_HOME=/psth/to/android/sdk  
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools  

However, this will not work for su/ sudo. If you need to set system-wide variables, you may want to think about adding them to /etc/profile, /etc/bash.bashrc, or /etc/environment.

ie:

nano /etc/bash.bashrc  
export ANDROID_HOME=/psth/to/android/sdk  
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools  
Program-Me-Rev
  • 6,184
  • 18
  • 58
  • 142
2
  • Make sure you have adb installed
  • To install it you could run the "sudo apt install adb".
  • You could also try revoking any USB authorizations on your device and try connecting with USB debugging enabled.
1

UNABLE TO LOCATE ADB #SOLVED Simply Download Sdk platform tools.https://developer.android.com/studio/releases/platform-tools.html Extract the Downloaded file. Go to Sdk Manager in Android Studio and copy the link. Go to file Explorer and paste the path for Sdk you copied to view the Sdk files. You will notice that the Adb file is missing, open downloaded file (platform tools) copy contents and replace every content in your Sdk tool file (the file where you noticed adb is missing)and save. You are good to go.

mamo kunni
  • 11
  • 1
1

In my case this is the solving of this problem

  1. Make sure you have installed the android SDK. Usually the location of SDK is located to this location

    /Users/your-user/Library/Android/sdk

  2. After that cd to that directory.

  3. Once you are in that directory type this command ./platform-tools/adb install your-location-of apk

Faris Rayhan
  • 4,500
  • 1
  • 22
  • 19
1

if youd dont have adb in folder android-sdk-macosx/platform-tools/ you should install platform tools first. Run android-sdk-macosx/tools/android and Install platform tools from Android SDK manager.

mamartin
  • 71
  • 7
1

you have to move the adb command to /bin/ folder

in my case:

sudo su
mv /root/Android/Sdk/platform-tools/adb /bin/
0

If you are using fish:
fish_add_path /Users/<name>/Library/Android/sdk/platform-tools/
Or you can add the same to ~/.config/fish/config.fish
Might need to re start the shell

Amir
  • 1,290
  • 1
  • 13
  • 20
0

Add the following command to .zshrc file

Open file in terminal using command -> vi .zshrc Add the android sdk path - > exportPATH="/Users/<user>/Library/Android/sdk/platform-tools:$PATH"

Close the file by -> Esc + :wq

Zahra
  • 2,231
  • 3
  • 21
  • 41