所以我为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的屏幕只是短暂地闪烁了半秒钟,然后就消失了。我不知道发生了什么,也不知道怎么让这东西工作。
当前回答
我看到的答案是通过在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用户)
最简单的方法是以管理员身份运行程序。
右键单击SDK管理器->以管理员身份运行
这样问题就解决了:)
也要确保在Windows的PATH中JDK之前没有JRE。Oracle总是在其他任何东西之前把自己的JRE塞到路径中(我在安装android sdk后安装了Oracle Lite)。
我也遇到过同样的问题。当运行android.bat时,我找到了解决方案(如果Java安装在“正常”Windows目录中,即“程序文件”),你需要在“c:/程序文件/”等周围加上引号等。否则它不能在“C:/program”上找到java。(我不喜欢空格)
确保java\bin目录在windows\system32目录之前。 SDK管理器使用java,它在system32文件夹中找到了一个。
在CMD窗口中,您可以运行“where java”。 不要忘记在更改用于检查的路径变量后重新启动CMD。