如何修复android.bat(android sdk / tools)中的“找不到合适的Java”错误

时间:2019-01-03 12:45:59

标签: java android

我正在尝试设置android-sdk,但不会显示sdkmanager。

由于此错误消息,我检查了我的 JAVA_HOME 变量,女巫正确地指向了jdk安装:

如果我跑步

echo %JAVA_HOME%

我在cmd中得到

C:\Program Files\Java\jdk-10.0.1

这是android.bat的输出

C:\Android\sdk\tools>android.bat

ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java JDK installed on your system.
We recommend that you install the JDK version of JavaSE, available here:
  http://www.oracle.com/technetwork/java/javase/downloads

If you already have Java installed, you can define the JAVA_HOME environment
variable in Control Panel / System / Avanced System Settings to point to the
JDK folder.

You can find the complete Android SDK requirements here:
  http://developer.android.com/sdk/requirements.html


C:\Android\sdk\tools>

3 个答案:

答案 0 :(得分:1)

找到了一个不需要降级到 JAVA 8 的解决方案,因此,JRE 可以选择为“uiautomatorviewer”运行 VM。

需要安装 Android Studio 并将以下位置添加到“path”系统变量中

C:\Program Files\Android\Android Studio\jre\bin

我有 jdk-11.0.6 并且“uiautomatorviewer”工作正常。

答案 1 :(得分:0)

如果Java降级对您不起作用,请尝试

经过长期的努力,我能够找出问题所在,不确定这是否是有效的解决方法,但确实可以解决此问题。

在最新的Android Studio版本3.4中,
 第44行上的C:\ Users \ username \ AppData \ Local \ Android \ Sdk \ tools \ lib \ find_java.bat 看起来像这样

 for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%a% 

如果您提供

%〜dps0 \ find_java%arch_ext%.exe的回声

这行代码应该根据您的计算机体系结构打印find_java32.exe或find_java64.exe的路径,但会在最终导致问题的finde_javax.exe之前在路径中添加//斜杠。

所以我只是将其修改为如下所示,并且可以正常工作。

为/ f“ =” delims =“ %% a in('”%〜dps0%find_java%arch_ext%.exe“ -s')中的

”确实设置了java_exe =%a%“

请告诉我是否有更好的解决方案,或者它是否对您有用

答案 2 :(得分:0)

@Saravinfotech的答案对我不起作用,但它指出了我正确的位置。双重\仍为我呼叫find_java64.exe,但运行该命令:

$ .\find_java64.exe -e
Failed to find Java 1.6 (or newer) on your system. [2] The system cannot find the file specified.

即使java.exe在我的路径上,并且JAVA_HOME设置在我的oraclejdk \ current文件夹中。虽然不值得调试。

我刚刚使用以下附加功能修补了脚本:

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

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

并且脚本停止抱怨。


回顾过去,可能会出现更大的问题。 monkeyrunner.bat正在使用arg -Djava.ext.dirs而不是-classpath来调用arg NoClassDefFoundError的java.exe,甚至可以解决此问题,我得到{{1} }。 Java 14的最新版本似乎非常不兼容。

修复程序是安装JDK8。