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 &gt; Show in Finder。 右键单击它并选择Show package content。 导航到提到的文件 (Contents/Info.plist)。 使用您喜欢的文本编辑器编辑文件。

【讨论】:

这将更改运行 Android Studio 的虚拟机。在我的 OSX 中,原始值为:JVMVersion1.6*,1.7+,1.8 新值为:JVMVersion1.8字符串> 有效!感谢您提供此解决方案。问题是:为什么 Google 希望他的开发人员在这个问题上浪费时间? 感谢您解决 google 缺少文档的问题 :)。我想知道为什么这里没有这条指令:developer.android.com/intl/pt-br/preview/setup-sdk.html#java8(这是在android studio中显示的链接)。 效果很好!!可悲的是,在更新 Android Studio(我刚刚更新到最新版本)时,它会重置 Info.plist 文件,所以我必须再次重复这些步骤来更改我的 JVMVersion:&lt;key&gt;JVMVersion&lt;/key&gt; &lt;string&gt;1.8&lt;/string&gt; 真烦人的 Android Studio! Android Studio 2.2 使用 1.8*,1.8+.【参考方案2】:

在预览窗口中单击 android 图标旁边的字母 N,然后选择 API 级别 23 或更低。应该可以解决的。

【讨论】:

但我想在 N 中预览,而不是在 API 23 中。 我在我的 Mac 上遇到了同样的问题。将 API 级别从 24 降低到 23 对我有用。 不是答案,请按照正确的答案进行 这不是答案。这只是忽略了问题环境。 做得很好。是的,它解决了我的问题。谢谢你。 :)【参考方案3】:

设置JDK_HOMEJAVA_HOME 环境变量,在我的例子中是C:\Program Files\Java\jdk1.8.0_60

检查Help &gt; About 中的Java 版本。它应该显示您刚刚设置的 JRE 版本。

就是这样,现在您可以在N 中预览您的布局。

【讨论】:

我按照你说的做了,但是当我帮忙时->关于它仍然指向我的旧 jdk。这是为什么呢? 我有 JRE:1.8(大约)。但是我无法构建针对 v24 的应用程序。 &gt; 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 &gt; 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真的好用吗?有那些优点

运行时无命令输出:'am start -n

如何修复错误:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:

Android Studio出现java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessExcep

android IDE——通过DDMS查看app运行时所占内存情况