为啥 Android Studio 不断切换“语言级别”?
Posted
技术标签:
【中文标题】为啥 Android Studio 不断切换“语言级别”?【英文标题】:Why does Android Studio keep toggling `languageLevel`?为什么 Android Studio 不断切换“语言级别”? 【发布时间】:2018-12-04 12:44:10 【问题描述】:很多时候,当我查看使用 android Studio 构建的 Android 应用的 git diff
输出时,我会看到以下内容。有时它会将languageLevel
从JDK_1_7
更改为JDK_1_8
。其他时候,它会将languageLevel
从JDK_1_8
更改为JDK_1_7
。怎么这么优柔寡断??
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -24,7 +24,7 @@
</value>
</option>
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
【问题讨论】:
Android .idea/misc.xml's languageLevel tag keeps changing JDKs的可能重复 【参考方案1】:1) 将此添加到您的应用 build.gradle
(在 android
元素内)
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
2) 从 Git 中排除 .idea
文件夹,将其添加到您的项目级别 .gitignore
# Ignore idea folder
.idea/
那么您需要按照this 之类的内容刷新版本化文件
对
.idea
文件夹进行版本控制,仅用于共享一些 AS 与您的团队一起设置,如果您独自工作或没有 共享编码策略,您可以将其删除。
【讨论】:
添加compileOptions
不会阻止misc.xml
切换languageLevel
。排除 .idea
文件夹只会通过使版本控制忽略 misc.xml
来隐藏问题,并且还会阻止与您的团队共享 AS 设置(正如您已经提到的)。这个答案既没有解释为什么 misc.xml
保持切换,也没有提供防止misc.xml
切换的解决方案。
当时我认为这是一个 AS 或 Intellij 错误,现在在 AS 3.4 中它不会发生在我身上(而且我使用的是默认的 gitignore,其中 misc.xml 是版本化的)。我提到的是几乎每个人都使用的解决方法以上是关于为啥 Android Studio 不断切换“语言级别”?的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio中自动更改编程输入语言是可视化窗口