Android N 要求 IDE 运行 Java 1.8 或更高版本?
Posted
技术标签:
【中文标题】Android N 要求 IDE 运行 Java 1.8 或更高版本?【英文标题】:Android N requires the IDE to be running with Java 1.8 or later? 【发布时间】:2016-06-26 00:16:06 【问题描述】:我的XML
布局未呈现此错误消息。我已经在使用 Java 8。
还在 Gradle 中使用最新的构建工具。
android
compileSdkVersion 'android-N'
buildToolsVersion 24.0.0 rc1
...
XML 错误 -
【问题讨论】:
Android Studio 存在各种渲染问题。我建议您提供minimal reproducible example。在这种情况下,这将包括布局文件和特定错误。 @CommonsWare 我更新了 XML 错误图像。 Install a supported JDK 重定向我设置我已经做过的步骤。 我不得不更改为 buildToolsVersion '24.0.0 rc1',文档缺少引号。 @PhyrumTea 没有让错误消失。 最后,当我尝试构建和运行项目时,它以Directory cannot have its readable permission cleared for everybody
失败。显然这是一个已知的bug 并且谷歌正在努力。
【参考方案1】:
我遇到了与您描述的相同的错误,但在 OS X 上。我知道这可能无法解决您的问题(因为我不知道 Windows 的等价物),但由于这不是特定于操作系统的,我将解决方案留给任何OS X 同胞。
编辑文件/Applications/Android\ Studio.app/Contents/Info.plist
,并删除 1.6 版本(在我的情况下),您可以放置 1.6+、1.7+ 或 1.8,无论您喜欢哪个。我的结局是这样的
...
<key>JVMVersion</key>
<string>1.7+</string>
...
请注意,Java 版本 1.8_60 到 1.8_75 (IDEA-146691) 的拖放不兼容,一旦您成功更改版本,IDE 将报告此问题。
非终端用户
-
找到您的
Android Studio.app
文件。如果它在 Dock 中,您可以右键单击它并选择 Options > Show in Finder
。
右键单击它并选择Show package content
。
导航到提到的文件 (Contents/Info.plist
)。
使用您喜欢的文本编辑器编辑文件。
【讨论】:
这将更改运行 Android Studio 的虚拟机。在我的 OSX 中,原始值为:<key>JVMVersion</key> <string>1.8</string>
真烦人的 Android Studio!
Android Studio 2.2 使用 在预览窗口中单击 android 图标旁边的字母 N,然后选择 API 级别 23 或更低。应该可以解决的。
【讨论】:
但我想在 N 中预览,而不是在 API 23 中。 我在我的 Mac 上遇到了同样的问题。将 API 级别从 24 降低到 23 对我有用。 不是答案,请按照正确的答案进行 这不是答案。这只是忽略了问题环境。 做得很好。是的,它解决了我的问题。谢谢你。 :)【参考方案3】:设置JDK_HOME
和JAVA_HOME
环境变量,在我的例子中是C:\Program Files\Java\jdk1.8.0_60
。
检查Help > About
中的Java 版本。它应该显示您刚刚设置的 JRE 版本。
就是这样,现在您可以在N
中预览您的布局。
【讨论】:
我按照你说的做了,但是当我帮忙时->关于它仍然指向我的旧 jdk。这是为什么呢? 我有 JRE:1.8(大约)。但是我无法构建针对 v24 的应用程序。> compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
@The_Martian 你需要重启你的电脑。
在 Mac OS 上,我删除了旧的 jdk 版本。之后,Android Studio 选择最后一个版本
@lopez.mikhael 这实际上是最终对我有用的唯一方法。我更改了我能找到的所有可能的设置,完全按照我应该的方式配置了所有内容,不断收到错误消息。最后,我将较旧的 jdk 目录移动到 JavaVirtualMachine 文件夹中我命名为 old_jdks 的子目录中。现在一切都很好。【参考方案4】:
来自文档: https://developer.android.com/studio/intro/studio-config.html#file_location
STUDIO_JDK:设置运行 Studio 的 JDK
我更喜欢使用 STUDIO_JDK 变量并保留其他默认的 java home 变量。
【讨论】:
【参考方案5】:我使用的是 Ubuntu 14.04,我遇到了类似的错误,不同的是我没有 NDK。我的解决方案是,在项目定义中设置 Java 8 后,重新启动 Android Studio,仅此而已。
检查系统Java版本,在控制台“java -version”,输出应该是这样的
java version "1.8.0_91"
【讨论】:
我已经设置了 JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home" STUDIO_SDK 也应该是 "/Library/Java/JavaVirtualMachines/jdk1.8.0_91. jdk/Contents/Home" ? @Maven 从理论上讲,您可以设置 STUDIO_SDK 变量,该变量将是运行 Android Studio 的 SDK 路径(如 Studio 的配置参数 tools.android.com/tech-docs/configuration 中所述)。但是,在我的情况下,我没有设置该变量并且 IDE 正在按预期运行。 你是对的。我尝试了不同的东西。确实是1.8没有正确链接的问题。这解决了它***.com/a/35935433/2369867。谢谢。【参考方案6】:我遇到了同样的问题。
我安装了jdk1.6、jdk1.7、jdk1.8,并按照你的方式部署了Studio。
我的解决办法是卸载jdk1.6和jdk1.7,只留下jdk1.8
sudo rm -rf $path to jdk1.6
sudo rm -rf $path to jdk1.7
就是这样。
【讨论】:
这样做安全吗 @MicroR 如果你其他软件没有依赖jdk1.6和jdk1.7,我觉得是安全的。 这个解决方案为我解决了这个问题。这种卸载方式安全,是Oracle推荐的一种(docs.oracle.com/javase/8/docs/technotes/guides/install/…)【参考方案7】:我的问题是 Android N 已“部分安装”。
我的解决方案是去 - 首选项/外观和行为/系统设置/Android SDK 并检查状态。如果它是“部分安装”,那么您必须卸载然后重新安装。 (取消选中复选框并点击应用;它将卸载;然后您可以选中该框并再次安装)为我工作。如果您使用较低版本(如 23),则必须在 build.gradle 中将 buildToolsVersion 变量更改为“23.0.0”。
【讨论】:
我的重新安装后仍然显示“部分安装”。 重新安装后我的也“部分安装”了。 @Andrew 你后来有没有找到解决办法? @Maven 对我来说,原来我的问题是我在尝试构建应用程序时没有选择正确的构建变体。【参考方案8】:我最近遇到了同样的问题。尝试将 API 预览级别更改为 23 或更低。这对我有用。
【讨论】:
【参考方案9】:我遇到了“Android N 要求 IDE 运行 Java 1.8 或更高版本”的问题。尽管在File > Project Structure
中将C:\Program Files\Java\jdk1.8.0_92
设置为项目的JDK,但错误仍然出现。
我通过将环境变量中的 JAVA_HOME 从 C:\Program Files\Java\jdk1.7.0_67
更新为 C:\Program Files\Java\jdk1.8.0_92
来解决它。当我这样做并重新启动 Android Studio 时,设计模式变得可用。
操作系统:Windows 10
Android Studio:2.1.2
【讨论】:
【参考方案10】:Ubunutu 也有同样的问题。问题在于没有使用 Java8 运行 IDE。
我通过更新操作系统的默认 java 程序来修复它,使用:
sudo update-alternatives --config java
并选择相关的 Java8 路径。
【讨论】:
【参考方案11】:对于遇到此问题的 Mac 用户(我运行的是 OS X 10.11.5 和 Android Studio 2.1.2),您可以通过以下方式解决它:
目前,Mac 版本的 Android Studio 运行的是 Java 6(不一定与应用程序的 JDK 版本相同),因为 Java 6 的字体渲染比 Java 7 和 8 更好,这显然比渲染更重要你的布局。
首先,确保您拥有JDK 8 installed。
然后运行以下命令:
$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/
您可能需要将jdk1.8.0_91.jdk
中的91
更改为不同的版本。您可以查看您使用的 JDK 版本:
$ ls /Library/Java/JavaVirtualMachines/
不幸的是,这种方法需要从终端打开应用程序,但您始终可以为其创建脚本。
More info
编辑:如果你真的不想从终端打开它:
-
创建一个包含以下内容的 AppleScript:
do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
文件>保存选择文件格式应用程序。将其保存在某处。
如果你想改变图标,see here.
如果您愿意,可以将应用拖到您的启动板。
【讨论】:
当我尝试运行脚本时,我得到:error "sh: /usr/local/bin/studio: No such file or directory" number 127
有什么办法可以解决吗?当我从终端运行它时,它工作得很好
@Daniele 抱歉,我忘了我为此创建了另一个 shell 脚本。 AppleScript 应该具有与上述相同的命令。请参阅我的更新答案。【参考方案12】:
机器:windows8 64bit 在我的情况下,我安装的 jdk1.7 是 32 位,因此我使用的是 studio.exe(32 位),所以即使我下载了新的 jdk1.8(64 位),我正在使用的工作室实例(32 位)也无法检测到它,但是当我卸载旧的 jdk 并尝试重新运行 studio.exe 时,我被告知安装 32 位 jdk。 所以我运行了 studio64.exe,它运行顺利。 确保您的环境变量中有正确的路径。干杯安卓N
【讨论】:
【参考方案13】:确保在启动 Android Studio (x64) 时安装了 jdk for x64 而不是 x84
【讨论】:
【参考方案14】:我已经用这些方法解决了。(AS+MAC OX El Capitan)
-
更新 SDK 工具>Android SDK 平台工具
转到帮助>编辑自定义属性>一个对话框将提示(按是)然后写
JVMVersion=1.8
然后完全关闭 Android Studio 并重新加载项目
【讨论】:
【参考方案15】:我也遇到过同样的问题。请确保您正在呈现已编译 SDK 版本的 XML 布局(不得更高)。这意味着如果您使用 Targeted SDK 版本 23 编译代码并尝试在 SDK 版本 24 中呈现 XML,您将面临这种情况。
【讨论】:
【参考方案16】:在 Mac OS 上设置 STUDIO_JDK 时要记住几件事:
默认情况下,Apple 的 Java 1.6 用于启动 Android Studio 当 STUDIO_JDK 设置为 Oracle 的 Java 时,Android Studio 将使用它来运行两者的区别在于 Apple 的 Java IMO 在 IDE 中提供了更好更好的字体抗锯齿功能。
回复here 引用了Android Studio 中关于字体抗锯齿的bug。票已经关闭,但 Apple Java 和 Oracle SDK 的渲染仍然不同(我有 v1.8.0_102)。而且前者的感知力还是比后者好。
【讨论】:
【参考方案17】:尝试在项目 Java 1.8 中使用 - 下载最新版本的 JDK 并安装它(如果没有 JSK)
然后将这些行添加到 build.gradle 安卓 ... // 仅为每个使用 Java 8 的模块配置 // 语言特性(在其源代码中或 // 通过依赖项)。 编译选项 sourceCompatibility JavaVersion.VERSION_1_8 目标兼容性 JavaVersion.VERSION_1_8 // 对于 Kotlin 项目 kotlinOptions jvmTarget = "1.8"
【讨论】:
以上是关于Android N 要求 IDE 运行 Java 1.8 或更高版本?的主要内容,如果未能解决你的问题,请参考以下文章
Java编码员和程序员好助手:十大Android IDE工具和应用
java IDE IntelliJ IDEA真的好用吗?有那些优点
如何修复错误:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:
Android Studio出现java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessExcep