所以我为Windows安装了android sdk:

http://developer.android.com/sdk/index.html(安装链接)

遇到了路径变量的问题。所以我通过改变环境变量中的“PATH”来修复这个问题,包括我的java.exe文件在JDK中的位置。

但现在当我打开android sdk管理器时,一个类似cmd的屏幕只是短暂地闪烁了半秒钟,然后就消失了。我不知道发生了什么,也不知道怎么让这东西工作。


当前回答

似乎有几种方法可以启动SDK管理器:

Android SDK的根目录中的SDK Manager.exe。 Android SDK的SDK \tools\lib中的SDK Manager.exe。 Window -> Eclipse中的Android SDK管理器菜单 Android sdk的sdk\tools中的Android .bat。

在我的例子中,它看起来像android.bat在行上失败:

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

至于那条线在做什么…如果我手动运行:"[path_to_java]java" -jar lib\archquery.jar

它成功返回:x86_64

但是当批处理文件运行相同的命令时,我不知道为什么,但它失败了,并出现错误消息:

Unable to access jarfile lib\archquery.jar

因此变量swt_path被设置为一个空字符串。一切都从那里开始分解。

批处理文件为变量java_exe设置了正确的值。其他人通常报告这是一个问题,但这些变通方法与我的情况无关。

人们建议通过在问题行开头添加REM来注释掉问题行,并添加一行来手动设置swt_path变量,这是一个有效的解决方法:

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

但是,在我的案例中,关键问题是它选择从lib\x86或lib\x86_64文件夹中加载jar文件。在某种程度上,BAT文件错误、32位JDK和64位Android SDK之间出现了混淆。

所以,在我的案例中,解决方法是:

Uninstall ALL versions of Java Install the JDK You can either use the 32-bit Android SDK and install the 32-bit JDK Or use the 64-bit Android SDK and install the 64-bit JDK But the "bitness" of the JDK should match the Android SDK. It appears that either of the 32-bit or the 64-bit will work on a 64-bit computer, AS LONG AS the JDK bitness matches the Android SDK bitness. Edit "android.bat" If using the 32-bit Android SDK/JDK, use lib\x86: REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a set swt_path=lib\x86 If using the 64-bit Android SDK/JDK, use lib\x86_64: REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a set swt_path=lib\x86_64

这样做之后,我可以通过运行android.bat或从Eclipse菜单成功运行SDK管理器(但仍然不能通过直接运行SDK Manager.exe文件)。

其他回答

没有什么能帮助我从所有这些答案,但我找到了正确的步骤(Windows 7 64位):

1)从sdk文件夹中打开android.bat进行编辑;

2)添加这两个字符串:

set java_exe=c:\Program Files\Java\jdk1.8.0_25\bin\java.exe
rem call lib\find_java.bat

而不是这样:

set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

其中c:\Program Files\Java\ jdk1.8.0_25是您的jdk文件夹。 3)享受。SDK管理器将从Android工作室IDE启动。

我也遇到过同样的问题,但最终还是解决了。然后,我创建了一个包含通用修复程序的逐步指南,以帮助所有开发人员尽快解决这个问题:http://www.dominantwire.com/2015/03/android-sdk-not-opening.html

所有的步骤都很简单:

1.如果您使用的是jdk v1.8。删除它并重新安装jdk v1.7.x.x

2.设置环境变量中“jdk”和“jre bin”文件夹的路径

3.删除(先备份)C: > Users > [user-name] > .android文件夹

4.设置变量“JAVA_HOME”,变量名为“JAVA_HOME”,变量值为jdk的bin文件夹路径。

5.进入[sdk-directory] > tools。找到并右键单击android.bat文件,选择“编辑”,在记事本中打开它,并进行以下修改。

原始

set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

修改

set java_exe=C:\Program Files\Java\jdk1.7.0_75\bin\java.exe
rem call lib\find_java.bat
rem if not defined java_exe goto :EOF

注意:如前所述,复制并粘贴您自己的java.exe路径目录。

原始

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

修改

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

注意:如果你的android sdk是64位的,那么提到set swt_path=lib\x86_64,否则如果它是32位的,那么保持它为set swt_path=lib\x86

完成了!从android.bat文件或eclipse中启动android sdk。应该能开得好好的!

一直试图让SDK管理器运行了一段时间,现在遵循各种线程与类似的问题,我可以找到。

另一个要考虑的解决方案是将android SDK移动到名称中没有空格的目录。

例如,在我的例子中,它存在于:

e:\Program Files (x86)\Android\android-sdk\

而且会失败。 搬迁地点:

c:\android_sdk_sucks\

它工作。

我看到的答案是通过在sdk\tools\android.bat中硬编码java.exe位置和x86 / x86_64架构字符串来提供变通解决方案。这些都是快速的解决方案,但并没有解决我真正好奇的根本问题。

我遇到的实际问题是,批处理脚本无法找到另一个脚本/jar文件,因此无法继续。我可以说剧本写得很糟糕。

当我在sdk\tools\android.bat中做了以下更改后,一切都像魔法一样工作。

具体来说,我添加了%~dp0\:

set java_exe=
call %~dp0\lib\find_java.bat
if not defined java_exe goto :EOF

...

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

现在,尝试启动脚本,SDK管理器应该出来了。

附注:我安装的操作系统、Java 8和Android SDK都是新的,我没有做任何额外的配置。

p.s. .您可能仍然需要配置PATH环境变量,以便脚本可以找到合适的java.exe。

在tools文件夹中找到android.bat文件对我来说很有用。有趣的是,让它运行起来是一件苦差事。根据我的经验,.exe文件通常按预期运行。我不知道为什么在这种情况下没有……奇怪又烦人!