Android Studio를 사용하려고하는데 처음 부팅 할 때 컴파일하는 데 45 분이 걸립니다 … 응용 프로그램을 종료하지 않으면 괜찮습니다-각 후속 컴파일 / 실행에는 앱이 필요합니다 약 45 초
내 캐시 중 일부를 확인하려고했습니다. .gradle/caches
홈 디렉토리에 폴더가 있으며 123MB가 들어 있습니다.
또한있다 .gradle
내 프로젝트 폴더의 폴더 … 중 하나는 taskArtifacts
2백메가바이트 같았다. 나는 둘 다 무작위로 핵무기를 두려워합니다. 폴더의 어떤 부분을 삭제해도 안전한가요?
내 Android Studio가 계속 실행되는 이유에 대한 더 나은 설명이 있습니까? gradle assemble
애플리케이션을 처음로드 할 때 작업 있습니까?
intellij 캐시도 삭제해야합니까?
답변
@ Bradford20000이 주석에서 지적했듯이 gradle.properties
파일 아래에 전역 gradle 스크립트 가있을 수 있습니다 $HOME/.gradle
. 이 경우이 디렉토리의 내용을 삭제할 때 특별한주의를 기울여야합니다.
.gradle/caches
디렉토리는 보유하고 Gradle
빌드 캐시를. 따라서 빌드 캐시에 대한 오류가 있으면 삭제할 수 있습니다.
답변
Gradle 캐시는
- Windows에서 :
%USER_HOME%\.gradle/caches/
- Mac / Unix의 경우 :
~/.gradle/caches/
이 디렉토리를 찾아 수동으로 삭제하거나 실행할 수 있습니다
rm -rf $HOME/.gradle/caches/
유닉스 시스템에서. 이 명령을 실행하면 종속성이 강제로 다운로드됩니다.
업데이트 2 : 현재 프로젝트 의 Android 빌드 캐시 지우기
참고 : Android Studio의 파일 | 캐시 무효화 / 다시 시작 은 Android 빌드 캐시를 지우지 않으므로 별도로 정리해야합니다.
Windows에서 :
gradlew cleanBuildCache
Mac 또는 Linux에서 :
./gradlew cleanBuildCache
답변
편집 : cleanBuildCache
더 이상 작동하지 않습니다
안드로이드 gradle 플러그인은 이제 gradle 캐시 기능을 사용합니다
REF : https://guides.gradle.org/using-build-cache/
캐시를 지우려면
이전 빌드에서 적중되지 않도록 캐시 디렉토리를 정리하십시오.
rm -rf $GRADLE_HOME/caches/build-cache-*
REF : https://guides.gradle.org/using-build-cache/#caching_android_projects
다른 치수
================
폐기 정보 :
gradle 작업을 사용하는 최신 솔루션
cleanBuildCache
Gradle, 개정판 2.3.0 용 Android 플러그인을 통해 사용 가능 (2017 년 2 월)
종속성 :
- Gradle 3.3 이상
- 빌드 도구 25.0.0 이상
더 많은 것 :
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
배경
캐시 작성 :
프로젝트를 빌드 할 때 Android 플러그인이 생성하는 특정 출력 (예 : 패키지화되지 않은 AAR 및 사전에 덱싱 된 원격 종속성)을 저장합니다. 빌드 시스템은 캐시 된 파일을 다시 작성하는 대신 후속 빌드 중에 단순히 재사용 할 수 있기 때문에 캐시를 사용하는 동안 클린 빌드가 훨씬 빠릅니다. Android 플러그인 2.3.0 이상을 사용하는 프로젝트는 기본적으로 빌드 캐시를 사용합니다. 자세한 내용은 빌드 캐시로 빌드 속도 향상을 참조하십시오.
참고 : 빌드 캐시를 비활성화하면 cleanBuildCache 작업을 사용할 수 없습니다.
용법:
창문
gradlew cleanBuildCache
리눅스 / 맥
gradle cleanBuildCache
안드로이드 스튜디오 / IntelliJ
gradle tab (default on right) select and run the task or add it via the configuration window
** gradle / gradlew는 스크립트가 포함 된 시스템 별 파일입니다. 스크립트를 실행하는 방법은 시스템 정보를 참조하십시오
답변
gradle 데몬을 조심하십시오. 그라들을 지우고 다시 실행하기 전에 중지해야합니다.
첫 번째 데몬을 중지하십시오.
./gradlew --stop
다음을 사용하여 캐시를 정리하십시오.
rm -rf ~/.gradle/caches/
다시 당신이 컴파일을 실행
답변
gradle 데몬은 또한 모든 단일 빌드 로그의 많은 큰 텍스트 파일을 만듭니다. 그들은 여기에 저장됩니다 :
~/.gradle/daemon/X.X/daemon-XXXX.out.log
“XX”는 “4.4”와 같은 사용중인 gradle 버전이며 “XXXX”는 “1234”와 같은 임의의 숫자입니다.
몇 개월 만에 전체 크기가 수백 MB까지 커질 수 있습니다. . 로깅을 비활성화 할 수있는 방법이 없으며 파일이 자동으로 삭제되지 않으므로 실제로 보관할 필요가 없습니다.
그러나 작은 gradle 작업을 만들어 자동으로 삭제하고 많은 디스크 공간을 확보 할 수 있습니다.
이것을 다음에 추가하십시오 app/build.gradle
:
android {
buildTypes {
...
}
// Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
// Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
def gradle = project.getGradle()
new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each {
if (it.getName().endsWith('.out.log')) {
// println("Deleting gradle log file: $it") // Optional debug output
it.delete()
}
}
}
어떤 파일이 삭제되는지 확인하려면 Android Studio->보기-> 도구 창-> 빌드에서 디버그 출력을 볼 수 있습니다. 그런 다음 해당 창에서 “토글보기”버튼을 눌러 텍스트 출력을 표시하십시오.
Gradle Sync 또는 Gradle Build는 파일 삭제를 트리거합니다.
더 좋은 방법은 파일을 휴지통 / 휴지통으로 자동으로 옮기거나 최소한 휴지통 폴더에 먼저 복사하는 것입니다. 그러나 나는 그것을하는 방법을 모른다.
답변
여기에 잘못된 정보가 게시 된 것 같습니다. 어떤 사람들은 안드로이드 빌더 캐시를 지우는 방법에 대해보고합니다 (작업 포함)cleanBuildCache
하지만 ) 캐시가 Gradle의 빌드 캐시 AFAIK와 독립적이라는 것을 깨닫지 못하는 것 같습니다.
내 이해는 Android의 캐시가 Gradle보다 오래되고 영감을 받았다는 것입니다.하지만 잘못되었을 수 있습니다. 안드로이드 빌더가 Gradle의 캐시를 사용하고 자체적으로 은퇴하도록 업데이트 될지 여부는 모르겠습니다.
편집 : Android 빌더 캐시는 더 이상 사용되지 않으며 제거되었습니다. Android Gradle 플러그인은 이제 Gradle의 빌드 캐시를 대신 사용합니다. 이 캐시를 제어하려면 이제 Gradle의 일반 캐시 인프라와 상호 작용해야합니다.
팁 : 키워드 ‘android’를 언급하지 않고 온라인으로 Gradle의 캐시 도움말을 검색하여 현재 관련 캐시에 대한 도움말을 얻으십시오.
편집 2 : 아래 의견에 tir38의 질문으로 인해 Android Gradle 플러그인 v3.4.2 프로젝트를 사용하여 테스트하고 있습니다. Gradle을 캐시로 사용할 수 있습니다 org.gradle.caching=true
에서 gradle.properties
. 나는 clean build
두 번째로 대부분의 작업을 보여줍니다FROM-CACHE
로 상태가 표시되어 캐시가 작동 중임을 나타냅니다.
놀랍게도, 나는 cleanBuildCache
gradle 작업과 <user-home>/.android/build-cache/3.4.2/
디렉토리를 가지고 있는데, 둘 다 안드로이드 빌더 캐시가 있음을 암시합니다.
나는 실행 cleanBuildCache
하고 3.4.2/
디렉토리는 사라졌다. 다음으로 나는 또 다른 일을합니다 clean build
:
- 변경 사항 없음 : 대부분의 작업
FROM-CACHE
이 상태로 표시 되며 빌드가 캐시 가능 속도로 완료되었습니다. 3.4.2/
디렉토리가 다시 만들어집니다.3.4.2/
디렉토리가 비어 (2, 길이 제로 마커 파일을 숨겨진 저장).
결론 :
- 모든 일반 Android 빌더 작업의 캐싱은 Gradle에서 처리합니다.
- 실행
cleanBuildCache
은 빌드 캐시를 지우거나 영향을 미치지 않습니다. - 여전히 안드로이드 빌더 캐시가 있습니다. 이것은 안드로이드 빌드 팀이 제거하는 것을 잊어 버린 흔적 코드 일 수 있거나 실제로 어떤 이유로 든 Gradle 캐시를 사용하여 이식 할 수 없거나 이상한 것으로 이상한 것을 캐시 할 수 있습니다. ( ‘HONT’옵션은 크게 개선 될 수 없습니다.)
다음, 난 제거하여 Gradle을 캐시를 비활성화 org.gradle.caching=true
에서 gradle.properties
와 나는 몇 가지를 시도 clean build
:
- 빌드가 느립니다.
- 모든 작업은 상태가 캐시되어 있거나 최신 상태가 아니라 실행중인 것으로 표시합니다.
3.4.2/
디렉토리가 비어되고 있습니다.
더 많은 결론 :
- Gradle 캐시에 도달하지 못한 경우에 대한 Android 빌더 캐시 폴 백이 없습니다.
- 적어도 일반적인 작업을 위해 Android 빌더 캐시는 실제로 앞에서 언급 한 것처럼 제거되었습니다.
- 관련 Android 문서 에 오래된 정보가 포함되어 있습니다. 특히 캐시 는 여기에 명시된대로 기본적 으로 활성화되어 있지 않으며 Gradle 캐시는 수동으로 활성화해야합니다.
편집 3 : 사용자 tir38은 Android 빌더 캐시가 더 이상 사용되지 않으며이 찾기 로 제거되었음을 확인했습니다 . tir38 도이 문제를 만들었습니다 . 감사!
답변
명령: rm -rf ~/.gradle/caches/