Android SDK和AVD Manager将不会运行

我安装了Android SDK,但是我不能使用它,因为AVD和SDKpipe理器不运行。 当我尝试打开其中一个,一个命令提示符窗口popup大约半秒,然后closures。 我试图从命令提示符运行exe,看看是否有错误消息,但没有输出,它的行为相同。 我研究了这个问题,发现其他计算机完全一样。 我尝试了一些在那里发布的解决scheme:

似乎没有工作的解决scheme

  • 将JDK位置添加到PATH环境variables的开头
  • 将Android SDK位置添加到PATH环境variables
  • 以pipe理员身份运行应用程序
  • 从用户( C:/Users/[User Name] )目录中删除.android文件夹
  • 安装在C:驱动器的根目录下,而不是在Program Files中

操作系统信息:Windows 7家庭高级版,pipe理权限


更新

我想我find了问题的根源,但是我仍然不知道如何解决这个问题。 这个问题似乎与我的android.bat文件在C:\Android\android-sdk\tools目录中。 它试图调用find_java.bat但由于小的语法问题而无法使用。 这是输出:


'C:\ Android \ ANDROI〜1 \ tools \ lib \ find_java.exe -s'不被识别为内部或外部命令,可操作程序或batch file。

错误:找不到合适的Java。 为了正确使用Android Developer Tools,您需要在您的系统上安装合适的Java JDK版本。 我们build议您安装JavaSE的JDK版本,可在此处find: http : //www.oracle.com/technetwork/java/javase/downloads

你可以在这里find完整的Android SDK需求: http : //developer.android.com/sdk/requirements.html


在对android.bat进行了一些修改之后,我能够调用find_java.bat ,无论我做了什么,都会得到一堆错误。 我终于感到沮丧,并决定在java.exe的位置硬编码。 稍后在batch file中还有另一个错误。 我开始认为我的安装或batch file有些问题。 这是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 

更新(再次)

我在运行在virtualbox上的WinXP上安装了Android SDK,并且工作正常。 尽pipe如此,我仍然可以在Win7上使用它。

Solutions Collecting From Web of "Android SDK和AVD Manager将不会运行"

我安装了一个新的JDK版本的JDK,并解决了我的问题

这就是我在Windows 8上的工作原理

  1. 添加JAVA_HOME环境variables并将其设置为您的java安装位置(即C:\Program Files (x86)\Java\jdk1.6.0_39\bin

  2. 下一步编辑C:\ Users {您的用户名} \ AppData \ Local \ Android \ android-sdk \ tools \ android.batfindset java_exe= call lib\find_java.bat行并将其set java_exe=java.exe

  3. 保存文件,它应该运行

请注意,如果您遇到有关swt位置的错误,只需对path进行硬编码即可。 将其设置为lib \ x86或lib \ x86_64

希望这可以帮助

我有一个全新的安装64位win 7 pro的问题,使用和64位JDK的全新安装。

肯顿价格的解决scheme,在这个post里,我确定了,现在它完美的工作。

Android SDK安装不会findJDK

由于某些原因,我的系统上的(最初是linux开发的)ADK需要用linux风格的正斜线而不是windows风格的反斜线来定义JAVA_HOME。

我发现了Rajesh从他上面的评论中发现的同样的问题。 该行的括号中的命令未执行

 for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a 

编辑:有些人可能有这样的行:for / f“delims =”%% a in('“%〜dps0find_java%arch_ext%.exe”-s')do set java_exe = %% a

这一行来自find_java.battools\lib\目录下的find_java.bat

我有一个Win 7的x64系统,我不会重新加载整个操作系统,所以我硬编码MZB从他的post上面提出的build议:

在这行之后:

 for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a 

编辑:或这一行:

for / f“delims =”%% a in('“%〜dps0find_java%arch_ext%.exe”-s')do set java_exe = %% a

我添加了这一行:

 set java_exe=%JAVA_HOME%\bin\java.exe 

这假定您将JAVA_HOME环境variables设置为Java JDK文件夹(不带\bin

如果您的JAVA_HOMEvariables包含\bin请将其设置为:

 set java_exe=%JAVA_HOME%\java.exe 

如果你没有设置JAVA_HOME环境,那么你需要使用你的机器上的实际path进行硬编码,就像MZB在他的post中所做的那样。

我也为javaw逻辑做了这个:

 set javaw_exe=%JAVA_HOME%\bin\javaw.exe 

我终于可以访问SDKpipe理器。


UPDATE 06/01/2015:

Ken YN在我提交后更新了这篇文章:

当我创build这篇文章时,我引用了这一行:

for / f“delims =”%% a in('“%〜dps0find_java%arch_ext%.exe”-s')do set java_exe = %% a

这在我目前从文件夹… \ sdk \ tools \ lib目前的find_java.bat,我刚刚从当前版本的Android Studio Windows x64版本(android-studio-bundle-141.1903250-windows.exe)更新。 variables%arch_ext%将有32或64个,取决于它们的系统。

但是我不知道上面这条线怎么转换成:

for / f“delims =”%% a in('“%java_exe%”-jar lib \ archquery.jar“)设置swt_path = lib \ %% a

Ken YN做了编辑之后。

但也许有些人在你的find_java.bat文件中有你的版本,但是我相信有些人和我一样拥有其他的版本。 我只是指出了那些有问题的人不能打开他们的SDKpipe理器。

另外我应该提到我有JDK1.7和JDK1.8这个问题。 我原来安装了JDK1.8,但是昨天在阅读Android Studio的要求时,说JDK1.7是必需的,所以我昨晚安装了JDK1.7,认为可以解决我的问题,但find_java.bat的问题是一样的与任一版本的JDK。

我也应该指出,当我在两个版本的JDK上安装Android Studio时,我最初都能够在首次打开Android Studio之前访问SDK Manager。 但是当我打开Android Studio时,它首先开始更新SDKpipe理器,也许是因为在启动IDEA项目之后发生问题,之后我无法打开SDKpipe理器。

所以也许find_java.bat有这个行之前,首次打开Android Studio:

for / f“delims =”%% a in('“%java_exe%”-jar lib \ archquery.jar“)设置swt_path = lib \ %% a

当Adroid Studio更新SDK时,它有这个线?

for / f“delims =”%% a in('“%〜dps0find_java%arch_ext%.exe”-s')do set java_exe = %% a

我没有时间去testing – 我已经花费了很多时间来试图找出如何访问SDK。 也许别人可以证实这一点,如果他们有同样的问题。

我也有同样的问题,无法打开Android SDKpipe理器,但通过从用户(C:/用户/ [用户名])目录删除.android文件夹它的工作…

谢谢

我碰到了一个和lopsided98一样的问题,在这里也尝试了所有的解决scheme,结果也没有。 然后我想起来,我不得不添加一个环境variables来findJava之前,我可以得到Android工作室首先启动,所以我刚刚尝试添加一个新的Android_home系统variables,并将其导向到我的android文件夹C:\Program Files (x86)\Android 。 就像我在设置java时所做的一样,然后启动没有问题。 SDKpipe理器现在也在运行。 我希望这有助于,如果你仍然有问题

这是我设置java部分时发现的,只是想我也可以尝试一下android。

在某些Windows系统上,启动脚本没有find安装Java的地方。 如果遇到这个问题,你需要设置一个指示正确位置的环境variables。

select开始菜单>计算机>系统属性>高级系统属性。

然后打开“ Advanced tab > Environment Variables然后添加一个新的指向JDK文件夹的系统variablesJAVA_HOME ,例如

C:\ Program Files \ Java \ jdk1.7.0_21。

不要删除.android文件夹。 Juz删除.android文件夹中的avd文件夹。 它会为你的工作做很多好事。

提前欢呼 普拉卡什。

我有这个问题,问题原来是这样的:

 D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe" C:\Windows\system32\java.exe 

我隐约想起了几年前有一个程序findJava的问题,并将其复制到system32目录来“解决”它。

我删除了这些文件,现在:

 D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe" C:\Program Files\Java\jre7\bin\java.exe 

和SDK / ADKpipe理器现在运行正常。

我的windows-8 64位机器上有同样的问题。 将问题缩小到for /f "delims=" %%a in ('"%~dps0\find_java.exe" -s') do set java_exe=%%a的特定语句中for /f "delims=" %%a in ('"%~dps0\find_java.exe" -s') do set java_exe=%%a在find_java.bat文件中for /f "delims=" %%a in ('"%~dps0\find_java.exe" -s') do set java_exe=%%a

由于某种原因,括号内的陈述并未作为命令执行。 我尝试了上述所有build议的解决scheme,但都没有工作。 最后发现,这个特殊的声明在另一台Windows 8 64位机器上运行良好,所以我的Windows 8安装出现了一些问题。 我检查了我的操作系统文件,发现其中一些是腐败的,所以我做了我的Windows 8安装的修复,之后,一切工作正常。

如果问题出在Windows机器上,那么只需以pipe理员身份运行AVD Manager或SDK Manager

可能是\ tools \ lib \ find_java.bat没有成功确定java.exe和javaw.exe可执行文件的位置。

解决方法在这里: http: //www.gmansoft.com/android-sdk-manager-find-java-problem/为我工作。 请注意,如果你“解决”在android.bat中的问题,其他batch file仍然会被破坏。

如果上面的链接中断,解决方法是硬连接find_java.bat的结果,以返回java可执行文件的实际位置。 编辑它是这样的:

 rem Check we have a valid Java.exe in the path. The return code will rem be 0 if the command worked or 1 if the exec failed (program not found). rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%%a set java_exe=c:\program files\Java\jdk1.8.0_25\bin\java.exe if not defined java_exe goto :CheckFailed :SearchJavaW rem Check if we can find a javaw.exe at the same location than java.exe. rem If that doesn't work, just fall back on the java.exe we just found. rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s -w') do set javaw_exe=%%a set javaw_exe=c:\program files\Java\jdk1.8.0_25\bin\javaw.exe if not exist "%javaw_exe%" set javaw_exe=%java_exe% goto :EOF 

升级工作环境时遇到同样的问题。 问题出在<AndroidSDK>\tools\lib\find_java.bat (比任何指向这个文件的人)。 它search了64位版本的Java,而我已经安装了32位版本。 set arch_ext=32简单和脏set arch_ext=32解决了我的问题。

我在Windows 8.1上遇到了同样的问题,通过以pipe理员身份运行Android Studio来解决这个问题