34

enter image description hereI newly started using Ubuntu 18.0 LTS this week, switching from Windows, and wanted to install Android Studio and Flutter back. I followed all the steps as said to install Android Studio and it is working fine with all the SDKs. However, when I wanted to install Flutter, it gives exception:

Doctor summary (to see all details, run flutter doctor -v):
Unhandled exception:
Exception: Android sdkmanager tool not found (/usr/lib/android-sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.io/setup/#android-setup for detailed instructions.

Ask for the stacktrace if you need it.

The closest issue I could find was: How to install SDK manager on linux ubuntu 16.04? but I couldn't really understand how to work the instructions. I might need you to be really clear in the instructions because I'm new to the linux platform.

tools/package.xml :

<ns2:repository xmlns:ns2="http://schemas.android.com/repository/android/common/01"
            xmlns:ns3="http://schemas.android.com/sdk/android/repo/addon2/01"
            xmlns:ns4="http://schemas.android.com/sdk/android/repo/sys-img2/01"
            xmlns:ns5="http://schemas.android.com/repository/android/generic/01"
            xmlns:ns6="http://schemas.android.com/sdk/android/repo/repository2/01">
      <license id="apache-2.0" type="text">Please refer to Apache v2.0 license</license>
  <localPackage path="tools" obsolete="false">
<type-details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:type="ns5:genericDetailsType"/>
<revision>
  <major>25</major>
  <minor>0</minor>
  <micro>0</micro>
</revision>
<display-name>Android SDK Tools</display-name>
<uses-license ref="apache-2.0"/>
<dependencies>
  <dependency path="platform-tools">
    <min-revision>
      <major>20</major>
    </min-revision>
  </dependency>
</dependencies>
  </localPackage>
 </ns2:repository>

Flutter doctor -v output:

[✓] Flutter (Channel beta, v0.7.3, on Linux, locale en_IN)
• Flutter version 0.7.3 at /home/andi/Downloads/flutter
• Framework revision 3b309bda07 (13 days ago), 2018-08-28 12:39:24 -0700
• Engine revision af42b6dc95
• Dart version 2.1.0-dev.1.0.flutter-ccb16f7282

[!] Android toolchain - develop for Android devices (Android SDK 28.0.2)
• Android SDK at /home/andi/Android/Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.2
• ANDROID_HOME = /home/andi/Android/Sdk
• Java binary at: /home/andi/Downloads/android-studio-ide-173.4907809-linux/android-studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Android Studio (version 3.1)
• Android Studio at /home/andi/Downloads/android-studio-ide-173.4907809-linux/android-studio
• Flutter plugin version 28.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[!] Connected devices
! No devices available

! Doctor found issues in 2 categories.
Aditya Nigam
  • 729
  • 2
  • 9
  • 18

4 Answers4

78

I had this issue after installed on my KUbuntu.

You need to open AndroidStudio then go to Tools -> SDK Manager then go to SDK Tools tab, uncheck the option Hide Obsolete Packages

You will see the option of Android SDK Tools (Obsolete), check the option and continue the process download and installation.

See the screenshot here

Aditya Kresna Permana
  • 11,266
  • 7
  • 38
  • 46
zmofsx
  • 797
  • 4
  • 3
9

I'm using Manjaro Linux. After set my ANDROID_HOME and install Android SDK Command-line tools (latest) from Android Studio.

And ran:

flutter doctor --android-licenses

$ mkdir ~/Android/Sdk/tools/bin

And created a link to the real path

$ ln -s ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager ~/Android/Sdk/tools/bin/sdkmanager

Ran again and accept all

$ flutter doctor --android-licenses

flutter doctor

  • This should probably be the accepted answer as it uses the latest SDK tools instead of installing an older version. – Marcelo Mar 17 '20 at 16:43
  • This is the better and correct answer. You also don't need to create the symbolic link anymore. Flutter automatically finds the sdkmanager under `cmdline-tools`. – Sajib Acharya Apr 13 '20 at 18:46
4

If you come across this error when accepting SDK licenses.

➜  ~ flutter doctor --android-licenses
Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed
to resolve this

the structure of the initial android-sdk was :

android-sdk
├── build-tools
│   ├── 29.0.3 -> debian
│   └── debian
│       └── lib
├── cmdline-tools
│   ├── tools
│   │   ├── bin

and the way i was able to configure android licenses was to change the structure of the android-sdk directory by changing 'tools' to 'latest'

android-sdk
├── build-tools
│   ├── 29.0.3 -> debian
│   └── debian
│       └── lib
├── cmdline-tools
│   ├── latest
│   │   ├── bin
|   |   |  
M.Nuh
  • 41
  • 4
3

I had this issue when I installed on Ubuntu. You need to set env variable ANDROID_HOME to the path you installed the android sdk for flutter to work.

So assuming you installed the SDK in your home directory, open a terminal and issue this command

ANDROID_HOME=~/Android-SDK flutter doctor

If that worked, then add the env variable to your profile to make it persistent, by adding

export ANDROID_HOME=~/Android-SDK

to your ~/.profile script, then relogin to Ubuntu.

Obviously if you installed the android sdk in a different directory, you just need to replace ~/ with the directory, so for example if you installed the sdk to /opt, then the command would be ANDROID_HOME=/opt/Android-SDK flutter doctor

Having checked my android sdk + flutter setup, I also ended up adding the following to my path

~/Android-SDK/platform-tools

You can test this before messing with your profile, by the following command in a terminal

PATH=$PATH:~/Android-SDK/platform-tools ANDROID_HOME=~/Android-SDK flutter doctor

And again change ~/Android-SDK to wherever you installed the android SDK. If it works, change your profile accordingly and relogin to Ubuntu.

nobody special
  • 397
  • 2
  • 14
  • No, the first command didn't work. If it helps, I followed https://stackoverflow.com/questions/26256279/how-to-set-android-home-path-in-ubuntu-please-provide-the-steps to set the variable. – Aditya Nigam Sep 10 '18 at 13:18
  • @AdityaNigam I found setting up flutter to play nicely with android sdk a pita, and I'm experienced with linux, so don't despair. I added something new to my answer, give it a try. – nobody special Sep 10 '18 at 14:08
  • @AdityaNigam It looks like those instructions you followed in that other link told you to put the export in .bashrc which is okay but will only affect the bash cli shell, so if you run your sdk from the cli, it's good. But if you run from the gui, you may find problems, whereas the .profile script sets up the environment for other shells, so I would (as I did) recommend setting up your envrionment in your .profile script. – nobody special Sep 10 '18 at 14:14
  • So i did gedit ~/.profile and in the end added **export ANDROID_HOME="/usr/lib/android-sdk/"** . Also, did you want me to put the flutter sdk folder into the same location? Because it still says **flutter: command not found** – Aditya Nigam Sep 10 '18 at 14:31
  • @AdityaNigam Your flutter can be anywhere as long as you setup the environment to point to it, and the fact that your flutter doctor command is running suggests that you have, so leave it as it is. The only things I have setup in my .profile script concerning android are export **PATH="$HOME/Android-SDK/platform-tools":$HOME/android-studio/bin:"$PATH"** and **export ANDROID_HOME=$HOME/Android-SDK**, and although it was a long time ago, that's all I remember having to do. I stopped using flutter, preferring plain java sdk, so I guess things might have changed. – nobody special Sep 10 '18 at 14:58
  • Remember that you have to logout and login to Ubuntu after changing .profile for the changes to take effect. – nobody special Sep 10 '18 at 14:59
  • I did that, and I guess adding the path like you said helped it too, thanks for your time. – Aditya Nigam Sep 10 '18 at 15:18