Android Studio
前言
最近更新完 Android Studio 之后,發現莫名其妙的經常很卡,通過任務管理器查看Studio竟然一直持續CPU使用率在 95% 以上, What the Fk!!
什么情況啊!
首先確認,當前Studio沒有運行下載,沒有打包,沒有開模擬器,也沒什么正在執行的任務,
最后找了半天發現 Analysis… 在持續運行,,,
很瘋狂的運行,,,

Android Studio 版本

Android Studio Arctic Fox | 2020.3.1 Patch 3
Build #AI-203.7717.56.2031.7784292, built on October 1, 2021
Runtime version: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 4
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: GsonFormatPlus, Dart, org.jetbrains.kotlin, io.flutter
Log
目測肯定是有問題啊,
咱們先找Log日志看看,
- 日志獲取方式
Help >> Show Log in Explorer - 日志路徑
C:\Users\CrazyApes\AppData\Local\Google\AndroidStudio2020.3\log\idea.log
錯誤日志如下
2021-12-20 14:45:41,225 [ 324567] ERROR - aemon.impl.PassExecutorService - Android Studio Arctic Fox | 2020.3.1 Patch 3 Build #AI-203.7717.56.2031.7784292
2021-12-20 14:45:41,225 [ 324567] ERROR - aemon.impl.PassExecutorService - JDK: 11.0.10; VM: OpenJDK 64-Bit Server VM; Vendor: Oracle Corporation
2021-12-20 14:45:41,225 [ 324567] ERROR - aemon.impl.PassExecutorService - OS: Windows 10
2021-12-20 14:45:41,226 [ 324568] ERROR - aemon.impl.PassExecutorService - Plugin to blame: Kotlin version: 203-1.6.10-release-923-AS7717.8
2021-12-20 14:45:41,227 [ 324569] ERROR - aemon.impl.PassExecutorService - Last Action: EditorEnter
2021-12-20 14:45:42,160 [ 325502] ERROR - aemon.impl.PassExecutorService - ContentElementType: ManifestFile; file: ManifestFile:MANIFEST.MF
Boolean.TRUE.equals(getUserData(BUILDING_STUB)) = false
getTreeElement() = Element(ManifestFile)
vFile instanceof VirtualFileWithId = true
StubUpdatingIndex.canHaveStub(vFile) = false
java.lang.AssertionError: ContentElementType: ManifestFile; file: ManifestFile:MANIFEST.MF
Boolean.TRUE.equals(getUserData(BUILDING_STUB)) = false
getTreeElement() = Element(ManifestFile)
vFile instanceof VirtualFileWithId = true
StubUpdatingIndex.canHaveStub(vFile) = false
at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:976)
at com.intellij.psi.stubs.StubProcessingHelperBase.checkType(StubProcessingHelperBase.java:91)
at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:61)
at com.intellij.psi.stubs.StubIndexImpl.lambda$processElements$2(StubIndexImpl.java:291)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:327)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:105)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:93)
at org.jetbrains.kotlin.idea.stubindex.KotlinFileFacadeClassByPackageIndex.get(KotlinFileFacadeClassByPackageIndex.kt:19)
at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport$getFacadeClassesInPackage$facadeFilesInPackage$1.invoke(IDEKotlinAsJavaSupport.kt:55)
at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport$getFacadeClassesInPackage$facadeFilesInPackage$1.invoke(IDEKotlinAsJavaSupport.kt:53)
at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runReadAction$lambda-0(ApplicationUtils.kt:17)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:877)
at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runReadAction(ApplicationUtils.kt:17)
at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport.getFacadeClassesInPackage(IDEKotlinAsJavaSupport.kt:53)
at org.jetbrains.kotlin.asJava.LightClassUtilsKt.findFacadeClass(lightClassUtils.kt:58)
at org.jetbrains.uast.kotlin.KotlinInternalUastUtilsKt.getContainingLightClass(kotlinInternalUastUtils.kt:89)
at org.jetbrains.uast.kotlin.KotlinConverter.getLightClassForFakeMethod(KotlinConverter.kt:479)
at org.jetbrains.uast.kotlin.KotlinConverter.convertDeclaration(KotlinConverter.kt:428)
at org.jetbrains.uast.kotlin.KotlinConverter.convertDeclarationOrElement(KotlinConverter.kt:488)
at org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin.convertElementWithParent(KotlinUastLanguagePlugin.kt:67)
at org.jetbrains.uast.UastFacade.convertElementWithParent(UastContext.kt:68)
at org.jetbrains.uast.UastContextKt.toUElement(UastContext.kt:111)
at com.intellij.codeInspection.apiUsage.ApiUsageUastVisitor.visitSimpleNameReferenceExpression(ApiUsageUastVisitor.kt:80)
at org.jetbrains.uast.kotlin.KotlinUSimpleReferenceExpression.accept(KotlinUSimpleReferenceExpression.kt:47)
at com.intellij.uast.UastVisitorAdapter.visitElement(UastVisitorAdapter.java:48)
at org.jetbrains.kotlin.psi.KtElementImpl.accept(KtElementImpl.java:54)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:66)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:57)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:311)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:270)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:156)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:148)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:268)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:127)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:116)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$6(LocalInspectionsPass.java:268)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:136)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1146)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:92)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:104)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:83)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:172)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:189)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:83)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
解決辦法
- 升級或者重裝 Android Studio
這是萬能大法,
然而,我還是想弄明白為啥,所以還沒急著升級,先觀察一波, - 有人遇到說是 org.jetbrains.kotlin 的問題
這個是在 Stack Overflow 中看到的,
提問者也是卡住了,通過升級 org.jetbrains.kotlin 解決問題,
如文章尾部的參考鏈接,
我嘗試了一下,會好轉,
我的 kotlin 從 1.6.0 升級到了 1.6.10,
雖然顯示 Performing Analysis,但是確實不會反復執行了,只是感覺似乎一直未執行完畢, - Flie >> Invalidate Caches/Restart >> Invalidate Caches/Restart
可能是 plugins 插件出現了問題,
這里可以考慮清除 Studio 快取,然后重啟,
這招也接近萬能大法了,
可以解決很多類似問題,
個人嘗試
由于我是kotlin升級和快取清除同時做的,不太確定哪個具體生效的,
個人傾向是后者,錯誤原因可能還是插件的問題,
其它
日志錯誤尚未分析,
有相關經驗的大佬可以在評論區指導一下,
參考文獻
https://stackoverflow.com/questions/68113077/how-to-resume-a-stuck-code-analysis-in-android-studio
Android Studio Download
Android Studio 常見問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/387934.html
標籤:其他
下一篇:Android9坑之總結
