每次更新到1.8路径时,Android Studio JDK位置都会更改回1.7

时间:2016-06-28 04:15:29

标签: java android android-studio java-8 android-studio-2.1

我最近安装了jdk 1.8 u92,之后Android Studio表示api24版本需要它。但是,我现在遇到了这个问题。

我查看了其他一些解决方案并卸载了jdk 1.7,为JDK_HOME,JAVA_HOME和JAVA8_HOME添加了环境变量。问题仍然存在。

每次尝试构建应用时,gradle sync都会失败,Android studio会要求选择有效的JDK目录。然后我转到项目结构=> JDK位置并将其更新到1.8文件夹。尝试再次构建会产生相同的错误,当我检查项目结构时,路径将自动重新设置为旧的JDK 1.7。

这个问题有什么问题吗?

6 个答案:

答案 0 :(得分:31)

在查看Android studio设置目录中的几个文件后想出来。

如果您一直在升级Android Studio并从之前的安装中导入设置,则可能会发生这种情况(全新安装也可能会发生这种情况)。

解决方案:

  1. 转到您的Android Studio配置文件夹所在的位置(通常位于$ HOME / .AndroidStudio2.1 / confg)。
  2. 打开选项文件夹并删除文件 jdk.table.xml (保留备份以防万一)
  3. 重新启动Android Studio
  4. 这解决了我的问题。新创建的jdk.table.xml将具有更新的java8值(最有可能从JDK_HOME环境变量中获取)。

答案 1 :(得分:1)

  1. 关闭android studio

  2. 转到:

  3. C:\用户\ WINDOW_USER_NAME \ AndroidStudio2.1 \配置\选项

    打开jdk.table.xml

    1. 用您的JDK版本替换所有版本,在我的情况下将所有版本替换为:

      C:/ Program Files / Java / jdk1.8.0_101

    2. 重新打开android-studio

    3. 同步

答案 2 :(得分:0)

删除xml文件后要做的是在执行此操作之前不要关闭android studio。因为当android再次启动时它会检查它的推荐设置并说“哦,这个用户可能已经删除了jdk的表,但是他默认仍然选择了1.7。”

不,当你删除表文件时,保持工作室打开。然后选择1.8,这样它会将参考设置保存回表格。您可能不必重新启动,因为表xml文件不是当前正在运行的文件,因为它位于自己的用户配置文件文件夹中而不是程序文件中。

答案 3 :(得分:0)

请按照下列步骤操作:(步骤适用于Windows;如果是其他操作系统,请访问相同的目录)

第1步:按" Win + R",输入"%userprofile%"然后按Enter键。

第2步:转到Android Studio文件夹,其格式如下 - " .AndroidStudio2.2" (版本可能会有所不同)

第3步:转到" config \ options"文件夹中。

第4步:在桌面上复制jdk.table.xml并删除jdk.table.xml。 (当android工作室仍在运行时这样做)

第5步:在Android Studio中 - 转到"文件 - >项目结构"并选择正确的jdk路径。

如果第4步和第5步无法解决问题,请按以下步骤操作::

步骤4' :在记事本中打开jdk.table.xml

第5步' :查找所有单词,包括jdk版本 - 例如。找到" 1.8.0_45"

第6步' :替换找到的字词;使用您当前的jdk版本。例如。改变" 1.8.0_45"到" 1.8.0_111" (确保替换包含版本号的所有字段)

第7步' :保存jdk.table.xml文件

第8步' :重启android studio。

这肯定会解决问题。

PS:应安装JDK并设置路径。

答案 4 :(得分:0)

只有这个答案适合我: https://stackoverflow.com/a/34199964/1034622

两者,android SDK和JDK文件夹都不能包含空格。

答案 5 :(得分:0)

1)将此添加到您的应用程序build.gradle(在android元素内部)

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

我从https://stackoverflow.com/a/51032051/326242复制了此内容。功劳归功于发布该问题的人(https://stackoverflow.com/users/2910520/matpag),但此问题的任何地方都没有发布正确的答案。