Android SDK和AVD管理器将无法运行(Android SDK and AVD Manage

2019-06-25 11:23发布

我安装了Android SDK,但我不能使用它,因为AVD和SDK管理器没有运行。 当我尝试打开其中任何一个,在命令提示符窗口弹出了大约半秒,然后关闭。 我曾尝试运行在命令提示符下的exe,看是否有错误信息,但没有输出,它的作用是相同的。 我研究这个问题,并发现了同样的事情发生在其他计算机上。 我尝试了一些被张贴在那里的解决方案:

似乎并没有工作方案

  • 添加JDK位置到年初PATH环境变量
  • 添加Android SDK的位置到PATH环境变量
  • 运行的应用程序作为管理员
  • 删除.android从用户文件夹( C:/Users/[User Name] )目录
  • 安装在根目录C:驱动器,而不是在Program Files文件

OS信息:Windows 7家庭高级版,管理员权限


更新

我想我找到了问题的根源,但我仍然不知道如何解决它。 这个问题似乎是与我的android.bat在文件C:\Android\android-sdk\tools目录。 它试图调用find_java.bat但就是因为一个小语法错误无法。 这是输出:


'C:\的Android \ ANDROI〜1 \工具\ lib中\ find_java.exe -s' 不被识别为一个内部或外部的命令,可操作的程序或批处理文件。

错误:没有找到合适的Java。 为了正确使用Android开发工具,你需要在系统上安装的Java JDK的合适的版本。 我们建议您安装JDK版本的JavaSE的,可在这里: http://www.oracle.com/technetwork/java/javase/downloads

你可以在这里找到完整的Android SDK中要求: http://developer.android.com/sdk/requirements.html


一些修改后android.bat ,我能得到它打电话find_java.bat ,这反过来又得到了一堆错误,无论我做了什么吧。 我终于得到了沮丧和位置决定进行硬编码java.exe 。 后来在批处理文件中仍然有另一个错误。 我开始觉得这事是真的错了我的安装或批处理文件。 这是批处理文件( 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和它完美的作品。 我仍然宁愿能够尽管使用Win7上。

Answer 1:

我安装JDK的新版本的x64和固定我的问题



Answer 2:

这是我得到它的工作在Windows 8

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

  2. 接下来编辑C:\用户{您的用户名} \应用程序数据\本地\的Android \ Android的SDK \工具\ android.bat找到set java_exe= call lib\find_java.bat行并将其更改为set java_exe=java.exe

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

请注意 ,如果你得到关于SWT位置错误只是硬编码的路径。 将它设置为LIB \ x86或LIB \ x86_64的

希望这可以帮助



Answer 3:

我有这个问题,一个新安装的64位赢得7 Pro的使用和全新安装64位的JDK。

肯顿的价格在这后的溶液固定的我,现在这一切完美的作品。

Android的SDK安装没有找到JDK

由于某种原因,与Linux的风格前进定义我的系统需要JAVA_HOME的(最初的Linux开发)ADK斜杠,而不是Windows风格反斜杠。



Answer 4:

我发现,拉杰什从上面他的评论中发现了同样的问题。 在该线路上括号内的命令不执行

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

编辑:一些人可能有这样一行:FOR / F “delims =” %%一个在( ' “%〜dps0find_java%arch_ext%的.exe” -s')做设置java_exe = %%一

这条线路是从find_java.battools\lib\ SDK的目录。

我有一个Win 7的64位系统,我不是重新加载整个操作系统,所以我硬编码什么MZB从他的岗位上面的建议:

此行之后:

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

编辑:或这一行:

FOR / F “delims =” %%一个在( ' “%〜dps0find_java%arch_ext%的.exe” -s')做设置java_exe = %%一个

我加了这一行:

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

这里假设你有JAVA_HOME环境变量设置为Java JDK的文件夹(不含\bin

如果您的JAVA_HOME变量包括\bin然后将其设置是这样的:

set java_exe=%JAVA_HOME%\java.exe

如果你没有JAVA_HOME环境设置,那么你需要与你有你的机器上MZB在他的岗位没有实际的路径硬编码。

我还没有为它的javaw进程逻辑太:

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

我终于可以访问SDK管理器。


更新2015年6月1日:

肯YN谁更新这个职位,我提交后:

当我创造了这个帖子,我曾引用这条线:

FOR / F “delims =” %%一个在( ' “%〜dps0find_java%arch_ext%的.exe” -s')做设置java_exe = %%一个

这从文件夹中我目前find_java.bat ... \ SDK \工具\ lib中,我昨天刚更新在Android Studio中的Windows版本的x64(机器人工作室束-141.1903250-windows.exe后)的当前版本。 变量%arch_ext%将不得不在它32或64,这取决于它们所拥有的系统。

但我不知道上面的线是怎么转换为:

FOR / F “delims =” %%一个在( ' “%java_exe%” 的罐子的lib \ archquery.jar')都设置swt_path = LIB \ %%一个

之后肯YN做了编辑。

但是,也许有些人有你的版本在他们find_java.bat文件,但我会相信有些人有其他像我这样做。 我只是指出这一点对于那些具有不能够打开自己的SDK管理器中的一个问题。

另外,我要提到我有这个问题既JDK1.7和JDK1.8。 我原本安装了JDK1.8但阅读了解Android Studio,昨日的要求时,它说JDK1.7是必需的,所以我安装了JDK1.7昨晚思维,将解决我的问题,但随着find_java.bat的问题是一样的与任一版本的JDK。

我要指出过,当我在JDK的两个版本的Android安装工作室,我本来能够首次开放的Android Studio之前访问SDK管理器。 但是,当我打开Android Studio中,它首先开始,也许更新SDK管理器时出现问题,因为启动的IDEA项目后,我不能后打通SDK管理器的。

因此,也许find_java.bat有这行之前首次开放的Android工作室:

FOR / F “delims =” %%一个在( ' “%java_exe%” 的罐子的lib \ archquery.jar')都设置swt_path = LIB \ %%一个

当的Adroid Studio更新的SDK,它有这条线?

FOR / F “delims =” %%一个在( ' “%〜dps0find_java%arch_ext%的.exe” -s')做设置java_exe = %%一个

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



Answer 5:

我也有无法打开的Android SDK管理器,而是由从(C:/用户/ [用户名])的用户删除文件夹.android同样的问题目录它的工作原理...

谢谢



Answer 6:

我只是碰到了类似的问题,因为lopsided98过,并试图也都在这里解决方案,也没有结果。 后来我想起,我不得不添加一个环境变量来查找Java之前,我可以得到机器人工作室的第一个地方开始,所以我只是尝试添加一个新的系统变量Android_home ,它引导到我的Android文件夹C:\Program Files (x86)\Android 。 就像设置Java的时候我做了,然后就开始了,没有任何问题。 SDK管理器还了,现在的工作。 我希望这可以帮助,如果你仍然有问题

这是建立在Java的一部分,当我发现了,只是以为我可能给它的Android一试了。

在某些Windows系统上,启动脚本找不到Java安装位置。 如果你遇到这样的问题,你需要设置一个环境变量,指示正确的位置。

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

然后打开Advanced tab > Environment Variables并添加新的系统变量JAVA_HOME指向你的JDK文件夹,例如

C:\ Program Files文件\的Java \ jdk1.7.0_21。



Answer 7:

不要删除该文件夹.android。 在.android文件夹中的一卷删除AVD文件夹。 它SHLD做了很多很好的工作。

提前欢呼。 普拉卡什。



Answer 8:

我有这个问题,这个问题竟然是这样的:

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

我依稀记得很久以前有一个程序发现Java和其复制到system32目录下,以“解决”它的问题。

我删除这些文件现在:

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

和SDK / ADK经理现在正常运行。



Answer 9:

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

出于某种原因,在括号中的陈述并没有被作为一个命令来执行。 我尝试了所有上述建议的解决方案,但没有一次成功。 最终发现,这种特定的语句工作得很好另一个Windows 8 64位机上,以便有一些问题,我的Windows 8安装。 我检查我的操作系统的系统文件,发现其中一些人腐败,所以我做了我的Windows 8安装的修复之后,一切工作正常。



Answer 10:

如果问题是在Windows机器上,然后只需运行AVD Manager或SDK管理器作为管理员



Answer 11:

有可能是一个问题与\工具\ LIB \ find_java.bat没有成功确定的java.exe和javaw.exe的可执行文件的路径。

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

如果上面的链接断裂,解决方法是硬连接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


Answer 12:

我面临着同样的问题,当升级了我的工作环境。 问题是在<AndroidSDK>\tools\lib\find_java.bat (感谢名单人谁指出,该文件)。 它搜索的Java的64位版本,而我已经安装了32位版本。 简单的和肮脏的set arch_ext=32find_java.bat解决这个问题对我来说。



Answer 13:

我面临着在Windows 8.1中同样的问题,它是由运行Android工作室为管理员解决



文章来源: Android SDK and AVD Manager will not run
标签: android avd