Flipper: Flipper Doctor complains Android SDK is not installed

Created on 2 Dec 2019  Β·  28Comments  Β·  Source: facebook/flipper

πŸ› Bug Report

I've been using Flipper since before the name change and it's always worked fine (still does).

However, on each launch, I get an error banner claiming there are problems with my install.

Flipper

My Android SDK is configured correctly, and complete.

Flipper

android-sdk

To Reproduce

Launch Flipper, or start Doctor.

Expected Behavior

Doctor should not claim there is an error with my setup. Of if there really are, it should describe the issue in a way that makes it actionable.

Environment

  • MacOS High Sierra 10.13.6
  • Flipper 0.29.4
adb --version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as /Applications/Dev/android-sdk/platform-tools/adb

Most helpful comment

I fixed the error by going to my local.properties file in VS Code coping the sdk.dir which mine is /Users/[MYUSER]/Library/Android/sdk then I went in Filpper -> File -> Preferences and changed the Android SDK Location See image..
Flipper

Then I clicked the Apply and Restart Button

All 28 comments

Interesting, thanks for reporting.

What do you get if you run this from the command line?
npx envinfo

and also this:
ANDROID_HOME=/Applications/Dev/android-sdk npx envinfo

Thank you for pointing me in the right direction! As you surmised, the tool didn't detect my Android SDK in with either command.

After looking at the source for envinfo, I realized the root cause was this issue.

The short-term fix for me is downgrading the version of Java I use by default, until Google finally updates their build tools for a current version of Java.

I have this issue as well despite correct env info and my JAVA_HOME set to jdk 8

Env info is

Android SDK:
      API Levels: 25, 28, 29
      Build Tools: 25.0.2, 28.0.3, 29.0.0, 29.0.2
      System Images: android-29 | Google APIs Intel x86 Atom
      Android NDK: 21.0.5935234

It would be tremendously helpful if the doctor displayed some explanation as to _why_ it believes it's failed. The current screen gives no actionable information to the developer.

image

@ZacSweers are you using Flipper v0.30.1?

@nikoant I am using Flipper v0.30.1? and also having the same issue

@zlil, right, I think the issue was fixed after v0.30.1 released. Could you try build Flipper from master and check?

Same issue when using v0.30.1 on Windows 10. I have customized the Android SDK location in Flipper but it still shows the warning banner.

PS C:\Users\Eric> adb --version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as E:\Android\Sdk\platform-tools\adb.exe
PS C:\Users\Eric> npx envinfo
npx: installed 1 in 1.131s

  System:
    OS: Windows 10 10.0.18363
    CPU: (12) x64 Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
    Memory: 24.26 GB / 31.92 GB
  Binaries:
    Node: 12.2.0 - C:\Program Files\nodejs\node.EXE
    npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
  Utilities:
    Git: 2.21.0.
  IDEs:
    VSCode: 1.41.1 - C:\Users\Eric\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
  Languages:
    Java: 12.0.1
  Databases:
    SQLite: 3.28.0 - E:\Android\Sdk\platform-tools\sqlite3.EXE
  Browsers:
    Edge: 44.18362.449.0
    Internet Explorer: 11.0.18362.1

This remains broken in 0.30.2

@ZacSweers still reproducible with Java 8? That’s strange because the problem was that SDK is detected using sdkmanager, but the latter is not compatible with Java 9+. For Java 9 and 10 we implemented is a workaround, but not for 11+. This issue is planned to be fixed in Android Studio 3.6 release: https://issuetracker.google.com/issues/67495440.

As the issues with SDK detection are very environment-specific, could you please provide more information?

  1. Post the full output of "npx envinfo"
  2. Check that Android SDK path is correct in Flipper settings
  3. Check whether you have environment variable ANDROID_HOME set on your machine? Does it points to the same dir as the SDK path in Flipper settings or different?

I posted my info in my comment higher up, yes confirmed #2 and #3. It would be helpful if the app showed me some sort of diagnostic of what it tried to find and thinks is missing.

@ZacSweers I've changed implementation of Android SDK detection to avoid using sdkmanager, and also added some (rather minimal) feedback for failed checks in this commit: https://github.com/facebook/flipper/commit/b625efee3d2fdce19c288c5135e12fe78e2572ca. Would be great if you can build from master and test this.

Will give it a shot πŸ‘

On Fri, Jan 24, 2020 at 9:54 AM Anton Nikolaev notifications@github.com
wrote:

@ZacSweers https://github.com/ZacSweers I've changed implementation of
Android SDK detection to avoid using sdkmanager, and also added some
(rather minimal) feedback for failed checks in this commit: b625efe
https://github.com/facebook/flipper/commit/b625efee3d2fdce19c288c5135e12fe78e2572ca.
Would be great if you can build from master and test this.

β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flipper/issues/667?email_source=notifications&email_token=AAKMJPQI7ERZ2EX52OMOR63Q7L6KXA5CNFSM4JTSEXDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ3BD6A#issuecomment-578163192,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKMJPTUOC3DO5N5FIAGUCLQ7L6KXANCNFSM4JTSEXDA
.

Unfortunately I'm unable to build from master locally. Running on mac and running yarn completes successfully, but neither yarn start nor yarn build run successfully

zsweers@NYC-M-ZSWEERS01 ξ‚° ~/dev/misc/clones/flipper ξ‚° ξ‚  master ● ξ‚° yarn start
yarn run v1.21.1
$ cross-env NODE_ENV=development node scripts/start-dev-server.js
internal/modules/cjs/loader.js:983
  throw err;
  ^

Error: Cannot find module 'electron'
Require stack:
- /Users/zsweers/dev/misc/clones/flipper/scripts/start-dev-server.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
    at Function.Module._load (internal/modules/cjs/loader.js:862:27)
    at Module.require (internal/modules/cjs/loader.js:1040:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/Users/zsweers/dev/misc/clones/flipper/scripts/start-dev-server.js:10:24)
    at Module._compile (internal/modules/cjs/loader.js:1151:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/zsweers/dev/misc/clones/flipper/scripts/start-dev-server.js'
  ]
}
yarn build --mac --version 0.1.0-local
yarn run v1.21.1
$ yarn rm-dist && cross-env NODE_ENV=production node scripts/build-release.js $@ --mac --version 0.1.0-local
$ rimraf dist
internal/modules/cjs/loader.js:983
  throw err;
  ^

Error: Cannot find module 'electron'
Require stack:
- /Users/zsweers/dev/misc/clones/flipper/src/utils/icons.js
- /Users/zsweers/dev/misc/clones/flipper/scripts/build-release.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
    at Function.Module._load (internal/modules/cjs/loader.js:862:27)
    at Module.require (internal/modules/cjs/loader.js:1040:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/Users/zsweers/dev/misc/clones/flipper/src/utils/icons.js:17:18)
    at Module._compile (internal/modules/cjs/loader.js:1151:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1040:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/zsweers/dev/misc/clones/flipper/src/utils/icons.js',
    '/Users/zsweers/dev/misc/clones/flipper/scripts/build-release.js'
  ]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Actually I see now that my yarn version is old, despite being the latest available on homebrew πŸ€” . Will try installing manually

Ok I'm not sure I understand. The README says it requires yarn 1.5+, yet that doesn't exist according to yarn's website

image

@ZacSweers 1.21 is newer than 1.5 (1.05). I don't think the problem here is in yarn, it rather looks like "electron" module was not installed properly. Could you check that it exists in node_modules?

Just tried a fresh clone in better wifi and looks like everything works! No more reported errors and I was successfully able to use flipper with my android app πŸŽ‰

@ZacSweers good news! Thank you for checking this.

I'm closing this issue then, SDK detection should work now disregard version of Java version.

@nikoant I'm facing the same issue,
flipper is weirdly saying that android_home is /opt/android_sdk and doesn't exit ..
which it is not true at all
Screen Shot 2020-04-08 at 00 06 51

everything regarding android is working fine for me, I'm not sure what the issue is here, could u please let me know what u think of this ?

thanks.

@a-eid on Mac, console apps and gui apps do not necessarily share the same environment. Try exporting your console env:

launchctl setenv JAVA_HOME $JAVA_HOME

@paour same thing happening to me but that didn't fix it.
Anything else I should try?

I fixed the error by going to my local.properties file in VS Code coping the sdk.dir which mine is /Users/[MYUSER]/Library/Android/sdk then I went in Filpper -> File -> Preferences and changed the Android SDK Location See image..
Flipper

Then I clicked the Apply and Restart Button

Thanks @Victor502.
Ended up doing the same yesterday and it fixed the issue.

in your terminal type echo $ANDROID_HOME that will give you the path to the Android SDK.

Copy that path and paste it in Flipper -> File -> Preferences -> Android SDK Location.

image

Apply and restart and you should be done.

You can also check on SDK manager at Android Studio the place of SDK :)

In your terminal, run echo $ANDROID_HOME, copy the path over to Flipper settings

On Mac OS I put ~/Library/Android/sdk into flippers settings first, turns out, flipper wants an absolute path like /Users/<username>/Library/Android/sdk

I fixed the error by going to my local.properties file in VS Code coping the sdk.dir which mine is /Users/[MYUSER]/Library/Android/sdk then I went in Filpper -> File -> Preferences and changed the Android SDK Location See image..
Flipper

Then I clicked the Apply and Restart Button

This solution works for me. Thanks!

Was this page helpful?
0 / 5 - 0 ratings