所以我为Windows安装了android sdk:
http://developer.android.com/sdk/index.html(安装链接)
遇到了路径变量的问题。所以我通过改变环境变量中的“PATH”来修复这个问题,包括我的java.exe文件在JDK中的位置。
但现在当我打开android sdk管理器时,一个类似cmd的屏幕只是短暂地闪烁了半秒钟,然后就消失了。我不知道发生了什么,也不知道怎么让这东西工作。
所以我为Windows安装了android sdk:
http://developer.android.com/sdk/index.html(安装链接)
遇到了路径变量的问题。所以我通过改变环境变量中的“PATH”来修复这个问题,包括我的java.exe文件在JDK中的位置。
但现在当我打开android sdk管理器时,一个类似cmd的屏幕只是短暂地闪烁了半秒钟,然后就消失了。我不知道发生了什么,也不知道怎么让这东西工作。
当前回答
我也遇到过同样的问题。当运行android.bat时,我找到了解决方案(如果Java安装在“正常”Windows目录中,即“程序文件”),你需要在“c:/程序文件/”等周围加上引号等。否则它不能在“C:/program”上找到java。(我不喜欢空格)
其他回答
我已经解决了这个问题。如果您无法从资源管理器打开“SDK Manager.exe”,或者如果您面临SDK管理器的任何问题。
首先检查环境变量中给出的Java路径。(在CMD下运行Java命令,或在CMD下以管理员身份运行Where Java)。如果Java命令被识别,那么Java可能没有问题
This might be due to broken SDK Tools. To fix it firstly rename tools folder (Android\Sdk\tools) to tools.old. Now download https://dl.google.com/android /repository/tools_r25.2.3-windows.zip?hl=id. After that Extract the downloaded zip files to Android\Sdk\ hence new tools folder would be extracted with all the contents for SDK. Now open SDK Manager.exe. If it opens your issue is solved. Please note that SDK Manager.exe is a launcher file that launches Android\Sdk\tools\bin\sdkmanager.bat. if you are satisfied with the answer please Upvote so that maximum users would solve the issue. For further help visit this page https://answers.unity.com/questions/1320150/unable-to-list-target-platform.html
我看到的答案是通过在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,得到
java.lang.NullPointerException
at java.io.File.<init>(File.java:251)
at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1623)
at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1584)
at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:357)
at com.android.sdklib.internal.avd.AvdManager.getInstance(AvdManager.java:380)
at com.android.sdklib.internal.repository.updater.UpdaterData.initSdk(UpdaterData.java:259)
at com.android.sdklib.internal.repository.updater.UpdaterData.<init>(UpdaterData.java:127)
at com.android.sdkuilib.internal.repository.SwtUpdaterData.<init>(SwtUpdaterData.java:61)
at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.<init>(SdkUpdaterWindowImpl2.java:104)
at com.android.sdkuilib.repository.SdkUpdaterWindow.<init>(SdkUpdaterWindow.java:88)
at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:408)
at com.android.sdkmanager.Main.doAction(Main.java:391)
at com.android.sdkmanager.Main.run(Main.java:151)
at com.android.sdkmanager.Main.main(Main.java:117)
基本上,它看起来像我有一个损坏的AVD配置,所以我去清除我的虚拟设备,一切又开始工作了!c:\ users \ youruser \。Android \avd适用于Windows用户)
好吧,我遇到了同样的问题,这些答案都不适合我(我运行的是Windows 8)。我试着运行tools/android.bat,注意到我得到了一些错误。我进一步调查了一下,发现Java路径的代码似乎有问题。
下面是解决方法:
在你最喜欢的文本编辑器中打开tools/android.bat 搜索这段代码: 设置java_exe = 叫lib \ find_java.bat 如果没有定义java_exe goto:EOF 把它替换成: set java_exe=D:\Program Files\Java\jdk1.7.0_07\bin\ Java .exe 这里的路径是你的Java exe的路径。 运行android.bat
(在我的情况下,我必须在第3步中指定java_exe的路径,不带引号以使其工作。)
似乎有几种方法可以启动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文件)。