I installed the Android SDK but I cannot use it because the AVD and SDK Managers do not run. When I try to open either one of them, a command prompt window pops up for about a half a second and then closes. I have tried running the exe from the command prompt to see if there was an error message but there is no output and it acts the same. I researched the problem and found out that the exact same thing happens to other computers. I tried some of the solutions that were posted there:
PATH
environment variablePATH
environment variable.android
folder from the user (C:/Users/[User Name]
) directoryC:
drive, instead of in Program FilesOS Info: Windows 7 Home Premium, Admin Privileges
I think I found the source of the problem, but I still don't know how to fix it. The problem seems to be with my android.bat
file in the C:\Android\android-sdk\tools
directory. It tries to call find_java.bat
but is unable to because of a small syntax problem. This is the output:
'C:\Android\ANDROI~1\tools\lib\find_java.exe -s' is not recognized as an internal or external command, operable program or batch file.
ERROR: No suitable Java found. In order to properly use the Android Developer Tools, you need a suitable version of Java JDK installed on your system. We recommend that you install the JDK version of JavaSE, available here: http://www.oracle.com/technetwork/java/javase/downloads
You can find the complete Android SDK requirements here: http://developer.android.com/sdk/requirements.html
After some modifications to android.bat
, I was able to get it to call find_java.bat
, which in turn got a bunch of errors no matter what I did to it. I finally got frustrated and decided to hard-code in the location of java.exe
. Later on in the batch file there was still another error. I am starting to think that something is really wrong with my installation or the batch file. This is the batch file (android.bat
):
@echo off
rem Copyright (C) 2007 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem Useful links:
rem Command-line reference:
rem http://technet.microsoft.com/en-us/library/bb490890.aspx
rem don't modify the caller's environment
setlocal
rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0
rem Grab current directory before we change it
set work_dir="%cd%"
rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0
rem Check we have a valid Java.exe in the path.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF
set jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar
rem Set SWT.Jar path based on current architecture (x86 or x86_64)
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
:MkTempCopy
rem Copy android.bat and its required libs to a temp dir.
rem This avoids locking the tool dir in case the user is trying to update it.
set tmp_dir=%TEMP%\temp-android-tool
xcopy %swt_path% %tmp_dir%\%swt_path% /I /E /C /G /R /Y /Q > nul
copy /B /D /Y lib\androidprefs.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\org.eclipse.* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\sdk* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\common.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-compress* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\swtmenubar.jar %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-logging* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\commons-codec* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpclient* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpcore* %tmp_dir%\lib\ > nul
copy /B /D /Y lib\httpmime* %tmp_dir%\lib\ > nul
rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs.
set tools_dir=%cd%
cd /d %tmp_dir%
:EndTempCopy
rem The global ANDROID_SWT always override the SWT.Jar path
if defined ANDROID_SWT set swt_path=%ANDROID_SWT%
if exist %swt_path% goto SetPath
echo ERROR: SWT folder '%swt_path%' does not exist.
echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
goto :EOF
:SetPath
rem Finally exec the java program and end here.
REM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
call %java_exe% %REMOTE_DEBUG% -Dcom.android.sdkmanager.toolsdir="%tools_dir%" -Dcom.android.sdkmanager.workdir=%work_dir% -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
rem EOF
I installed the Android SDK on WinXP running in virtualbox and it works perfectly. I would still rather be able to use it on Win7 though.
SDK Build Tools are not installed If it fails then you may have to install it again. You look at the build tab at the bottom of the screen, it will display the error message and option to install the Build tools. Install it and you should be able to see the AVD Manager. Another way is to go to the SDK Manager.
If the Android Emulator does not start properly, this problem is often caused by problems with HAXM. HAXM issues are often the result of conflicts with other virtualization technologies, incorrect settings, or an out-of-date HAXM driver. Try reinstalling the HAXM driver, using the steps detailed in Installing HAXM.
This is how I got it to work on Windows 8
Add the JAVA_HOME environment variable and set it to your java
install location (i.e. C:\Program Files (x86)\Java\jdk1.6.0_39\bin
)
Next edit C:\Users{YOUR
USERNAME}\AppData\Local\Android\android-sdk\tools\android.bat Find
the set java_exe= call lib\find_java.bat
line and change it to
set java_exe=java.exe
Save the file and it should run
Note if you get an error about the swt location simply hardcode the path. Set it to lib\x86 or lib\x86_64
Hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With