Android .idea / misc.xml的languageLevel标记不断更改JDK
由于我不知道的原因,languageLevel键从JDK_1_8更改为JDK_1_7。
可能会发生什么?
这与这个项目的其他开发者的IDE有什么关系? 也许他们有另一个Android Studio设置?
在我注意到源代码pipe理下的文件已经改变之后,popup的是:
$ git diff diff --git a/.idea/misc.xml b/.idea/misc.xml index fbb6828..5d19981 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ <ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Remove" /> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType">
这是我的gitignore万一重要。
.gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures
我该如何继续下去,以保持一种或另一种方式?
更新到AS 2.2后,从Google来到这里。 这可能对别人有帮助。
由于Android Studio 2.2已经与JDK捆绑在一起了。 而不是你必须下载它安装在你的系统上。 当我更新到2.2时,我的项目JDK开始切换,可能是因为现在可用的两个版本之间的混淆。 系统和embedded式。
如果您进入“文件”>“项目结构”(Mac OS),则在“SDK位置”选项卡上有JDK位置。 现在有了一个新的设置来使用embedded式的JDK,一旦我切换到它,它解决了我的问题。
这让我疯狂了一阵子。 我能够通过在我的build.gradle
显式设置java版本来解决它:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }
请注意,如果您使用的是VERSION_1_7
,那么当您冷启动Android Studio或切换到使用VERSION_1_8
其他项目时,它将修改.idea/misc.xml
以使用JDK_1_8
。 执行gradle同步会将其恢复为使用JDK_1_7
。 如果您使用的是VERSION_1_8
,则不会出现此问题。
这不是完美的,但我发现现在这已经够好了。
看来文件应该存储在版本控制下 。 我会build议保持它在git中,但忽略所有的本地变化:
git update-index --assume-unchanged .idea/misc.xml
切换分支时,这些文件可能会有冲突。 然后你可以使用下面的imlreset脚本来重置文件:
#!/bin/bash while read f do [ -f $f ] && git checkout $f done <<! app/app.iml wear/wear.iml !
如果经常这样做,可以创build类似的脚本来忽略这些文件。
我解决了这个问题,当我删除并停止提交.idea文件夹到源代码pipe理。
问题是这些文件中的一部分是机器特定的configuration,所以共享它们可能是一个问题。
删除它和其他违规文件是一个两步的git过程:
1)添加这个.gitignore(从https://stackoverflow.com/a/32942758/869936 ):
#built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Windows thumbnail db Thumbs.db # OSX files .DS_Store # Eclipse project files .classpath .project # Android Studio *.iws *.iml .idea .gradle build/ */build/
2)对于.gitignore的每一行,从命令行运行git rm line
line。
例:
$ git rm *.iws $ git rm *.iml $ git rm .idea $ git rm .gradle $ git rm build/ $ git rm */build/
添加并提交更改
现在,这些文件将在您打开Android Studio项目时生成,并且不会添加到git中。