Android 无法访问jarlib\archquery.jar文件
问题:Android 无法访问jarlib\archquery.jar文件,android,sdk,installation,Android,Sdk,Installation,问题: 无法打开SDK管理器(仅闪烁一秒钟) Eclipse中没有构建路径目标 路径: 环境变量: 错误: 我有一个类似的问题——我必须编辑android.bat(需要时还需要编辑traceview.bat) 在android.bat中查找 for /f %%a in ('%java_exe% -jar %frameworkdir%archquery.jar') do set swt_path=%frameworkdir%%%a 取代 set swt_path=lib\x86 YM
- 无法打开SDK管理器(仅闪烁一秒钟)
- Eclipse中没有构建路径目标
路径:
环境变量:
错误:
我有一个类似的问题——我必须编辑android.bat(需要时还需要编辑traceview.bat) 在android.bat中查找
for /f %%a in ('%java_exe% -jar %frameworkdir%archquery.jar') do set swt_path=%frameworkdir%%%a
取代
set swt_path=lib\x86
YMMV,但除了编辑android.bat,如前一个答案所述,我仍然无法让SDK管理器在64位Windows 8上运行,直到我首先:
- 已卸载所有版本的Java
- 重新启动*
- 仅安装X86 JDK(包括安装程序中的公共JRE选项)
SDK Manager.exe
SDK\tools\lib
中的SDK Manager.exe
窗口->Android SDK管理器
菜单sdk\tools
中的android.bat
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
至于那条线在做什么。。。如果我手动运行:“[path\u to\u java]java”-jar lib\archquery.jar
它成功返回:x86\u 64
但是当批处理文件运行相同的命令时,我不知道为什么,但它失败了,并显示错误消息:
Unable to access jarfile lib\archquery.jar
因此变量swt_path
被设置为空字符串。从那里一切都崩溃了
批处理文件为变量java\u 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\u 64
文件夹加载jar文件。在某种程度上,人们开始混淆BAT文件错误、32位JDK和64位Android SDK
因此在我的案例中,解决方法是:
- 您可以使用32位Android SDK并安装32位JDK
- 或者使用64位Android SDK并安装64位JDK
- 但JDK的“比特度”应该与Android SDK相匹配。似乎32位或64位都可以在64位计算机上工作,只要JDK位与Android SDK位匹配
- 如果使用32位Android SDK/JDK,请使用
:lib\x86
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a set swt_path=lib\x86
- 如果使用64位Android SDK/JDK,请使用
:lib\x86\u 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管理器.exe文件)。在Windows 7上,至少批处理“FOR”循环在执行列表命令时不使用当前工作目录,但是根。在本例中,命令是“%java\u exe%-jar lib\archquery.jar”。但是,它实际上是从根目录运行的,例如“C:\”。通过以下命令行中的简单测试,您可以看到这一点:
for /f %a in ('CD') do echo %a
因此,运行archquery的命令是查找相对于根目录的jar,而不是您的ADT目录,因此无法找到它。对android.bat(下面)的更改为我解决了这个问题。我现在也可以从Eclipse启动SDK管理器了
for /f "delims=" %%a in ('"%java_exe%" -jar %~dp0\lib\archquery.jar') do set swt_path=lib\%%a
请看我也遇到过类似的问题,这就是解决问题的方法
\android sdk windows\tools
打开android.bat
文件for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a
并在此行前面添加rem
set swt\u path=lib\x86
(如果您使用的是32位系统)或set swt\u path=lib\x86\u 64
(如果您使用的是64位系统)android sdk windows\tools\
并运行android。这将打开SDK管理器。但是请确保在您的环境变量中定义了JAVA\u HOME
,并且应该指向JDK HOME我通过替换:
for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a
与
请注意,我对swt\u path
变量使用了“
希望这能帮助其他人。添加一个名为“ANDROID\u SWT”的环境变量“指向保存swt.jar的目录,这对我来说是可行的。似乎是比修改脚本更好的选择。哦,上帝,谢谢你。。。试图让android SDK运行一个多小时…我修复了我的android.bar以使用archquery的完整路径,利用批处理文件中前面设置的%work\u dir%变量:for/f%%a in(“%java\u exe%%jar%work\u dir%\lib\archquery.jar”)do set swt\u path=lib\%a
for /f "delims=" %%a in ('"%java_exe%" -jar %~dp0\lib\archquery.jar') do set swt_path=lib\%%a
for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a
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"