내가 알지 못하는 이유로 languageLevel 키가 JDK_1_8에서 JDK_1_7로 변경되었습니다.
무슨 일이야?
이것은 프로젝트에서 작업하는 다른 개발자의 IDE와 관련이 있습니까? 다른 Android Studio 설정이 있습니까?
다음은 소스 제어 하의 파일이 변경된 것을 발견 한 후 나타나는 팝업입니다.
$ 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
어떤 식 으로든 계속 유지하려면 어떻게해야합니까?
답변
이것은 잠시 동안 나를 미치게했다. 내 Java 버전을 명시 적으로 설정하여 문제를 해결할 수있었습니다 build.gradle
.
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 sync를 수행하면을 다시 사용으로 되돌립니다 JDK_1_7
. 를 사용하는 VERSION_1_8
경우이 문제가 발생하지 않습니다.
완벽하지는 않지만 지금은 이것으로 충분하다는 것을 알았습니다.
답변
Android Studio 2.2로 업데이트 한 후 Google에서 왔습니다. 이것은 다른 사람들에게 도움이 될 수 있습니다.
Android Studio 2.2부터 JDK가 시스템에 다운로드하여 설치하는 대신 JDK와 함께 번들로 제공되었습니다. 내 프로젝트 JDK는 2.2로 업데이트했을 때 전환을 시작했습니다. 현재 시스템과 임베디드의 두 버전이 혼동되어 있기 때문일 수 있습니다.
파일> 프로젝트 구조 (Mac OS)로 이동하면 SDK 위치 탭에 JDK 위치가 있습니다. 임베디드 JDK를 사용하기위한 새로운 설정이 있습니다. 일단 전환하면 문제가 해결되었습니다.
답변
파일 을 버전 관리하에 저장해야합니다 . 나는 그것을 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
!
이러한 파일을 자주 무시하는 경우 유사한 스크립트를 작성하십시오.
답변
소스 컨트롤에 .idea 폴더 커밋을 제거하고 중지했을 때이 문제를 해결했습니다.
문제는 이러한 파일 중 일부는 시스템 별 구성이므로 공유하는 것이 문제가 될 수 있다는 것입니다.
그것을 제거하고 다른 문제가되는 파일을 제거하는 것은 두 단계 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
대해 명령 줄에서 실행 하십시오.
예:
$ git rm *.iws
$ git rm *.iml
$ git rm .idea
$ git rm .gradle
$ git rm build/
$ git rm */build/
변경 사항 추가 및 커밋
이제이 파일은 Android Studio 프로젝트를 열 때 생성되며 git에 추가되지 않습니다.