Bug? RESOLVED - suspect problem in cmdline-tools

Lee Gillie CCP

Active Member
Licensed User
Longtime User
I've been away for a while, and the customer wants enhancements to the B4A project we provided to the some years back.

Before anything I am first getting the latest B4A, update the JDK, Android SDK to v 35, and of course the latest cmdline-tools from the Anywhere website.

When you select tools / sdk manager or tools / avd manager nothing happens. I tried sdkmanager.bat from a command line, and nothing.

So first verified a few symbols, set debug mode on, and invoked the bat file. The command to start up the sdk manager must have some syntax issues because it immediately dumps help about what the command line options are.

This is what I see:

D:\AndrioidEnvironment\Android\cmdline-tools\bin>echo "%debug%"
"true"

D:\AndrioidEnvironment\Android\cmdline-tools\bin>echo "%java_home%"
"D:\AndrioidEnvironment\Java\JDK-17"

D:\AndrioidEnvironment\Android\cmdline-tools\bin>%java_home%\bin\java.exe -version
java version "17.0.14" 2025-01-21 LTS
Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.14+8-LTS-191, mixed mode, sharing)

D:\AndrioidEnvironment\Android\cmdline-tools\bin>sdkmanager.bat

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if "Windows_NT" == "Windows_NT" setlocal

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set DIRNAME=D:\AndrioidEnvironment\Android\cmdline-tools\bin\

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if "D:\AndrioidEnvironment\Android\cmdline-tools\bin\" == "" set DIRNAME=.

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set APP_BASE_NAME=sdkmanager

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set APP_HOME=D:\AndrioidEnvironment\Android\cmdline-tools\bin\..

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=D:\AndrioidEnvironment\Android\cmdline-tools\bin\\.."

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if defined JAVA_HOME goto findJavaFromJavaHome

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set JAVA_HOME=D:\AndrioidEnvironment\Java\JDK-17

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set JAVA_EXE=D:\AndrioidEnvironment\Java\JDK-17/bin/java.exe

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if exist "D:\AndrioidEnvironment\Java\JDK-17/bin/java.exe" goto init

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if not "Windows_NT" == "Windows_NT" goto win9xME_args

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set CMD_LINE_ARGS=

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set _SKIP=2

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if "x" == "x" goto execute

D:\AndrioidEnvironment\Android\cmdline-tools\bin>setlocal enabledelayedexpansion

D:\AndrioidEnvironment\Android\cmdline-tools\bin>for /F "tokens=3" %a in ('""D:\AndrioidEnvironment\Java\JDK-17/bin/java.exe" -version 2>&1 |findstr "version""') do (for /F "tokens=1,2 delims=." %b in ('echo %a') do (set versionWithQ=%b%c ) )

D:\AndrioidEnvironment\Android\cmdline-tools\bin>(for /F "tokens=1,2 delims=." %b in ('echo "17.0.14"') do (set versionWithQ=%b%c ) )

D:\AndrioidEnvironment\Android\cmdline-tools\bin>(set versionWithQ="170 )

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set version=!versionWithQ:"=!

D:\AndrioidEnvironment\Android\cmdline-tools\bin>if !version! LSS 170 if "" == "" (
echo Java version 17 or higher is required.
echo To override this check set SKIP_JDK_VERSION_CHECK
goto :eof
)

D:\AndrioidEnvironment\Android\cmdline-tools\bin>set CLASSPATH=D:\AndrioidEnvironment\Android\cmdline-tools\bin\..\lib\sdkmanager-classpath.jar

D:\AndrioidEnvironment\Android\cmdline-tools\bin>"D:\AndrioidEnvironment\Java\JDK-17/bin/java.exe" "-Dcom.android.sdklib.toolsdir=D:\AndrioidEnvironment\Android\cmdline-tools\bin\\.." -classpath "D:\AndrioidEnvironment\Android\cmdline-tools\bin\..\lib\sdkmanager-classpath.jar" com.android.sdklib.tool.sdkmanager.SdkManagerCli
Usage:
sdkmanager [--uninstall] [<common args>] [--package_file=<file>] [<packages>...]
sdkmanager --update [<common args>]
.... etc
 

Sagenut

Expert
Licensed User
Longtime User
Did you point to the sdkmanager.bat from the new SDK folder?
 

Lee Gillie CCP

Active Member
Licensed User
Longtime User
Did you point to the sdkmanager.bat from the new SDK folder?
I downloaded (13114758) from the B4A setup instructions, I unzipped it to my sdk folder, exactly as shown. And regardless of what points to what, you should be able to invoke the new sdkmanager.bat from the CLI, but as demonstrated, even that fails.
 

Sagenut

Expert
Licensed User
Longtime User
You should not overwrite your existing SDK folder.
You need to make a new one with both SDK and Resources from the installation guide.
And point every path to this one.
Many members are using the newest setup, I think that if something was faulty it would be noted.
 

Lee Gillie

Member
Licensed User
Longtime User
Screenshot 2025-07-17 044904.png

This is pretty much a fresh install. I did not copy over anything as was asked earlier.
 

Lee Gillie

Member
Licensed User
Longtime User
You are not using the recommended Java version: https://www.b4x.com/b4a.html

It is probably missing JavaFX so can't start the sdk manager.
That was it... At this point I am not sure how I ended up with JDK 17, I suspect from another project using different tools. Your words were there, but I shamefully admit glossing over it.

FWIW I reinstalled everything again to a blank folder, and still not working.

I downloaded the CORRECT jdk, and then things started working...

I ran the sdk manager from B4A and this time it prompted for the path to sdkmanager.bat, so I supplied that, and the familiar SDK manager appeared.

And most importantly, the AVD manager was now running. Due to working at home where I tried to work from, but my application running on a tablet could not connect to the office computer where our data services run. I tried setting up a mobile hotspot on the computer, and route to the work VPN, but could not get that to fly, so I find myself working remotely to my workstation at the office, but with no physical tablet to test with I am forced to use an emulator for testing and debugging. So setting up an AVD was essential to my task.

Sagenut and Erel... I appreciate your help! You both have a great rest of your day - Lee
 
Top