我在gradle 2.3
中使用Android Studio 2.3.3
。我面临一个奇怪的问题,被困了一个星期。当我输入一些代码行时,它会在显示auto complete
框之前经常挂起。
或者,如果我没有输入任何内容,只需使用Command-click
来查找变量或方法的实现,则会显示对话框Resolving Reference
并挂起。
有时,如果我转换到另一个应用程序一段时间并切换回查看Android Studio,它也会挂起。
我已经尝试了很多不同的方法,但没有帮助,包括:
File > Invalidate Cache/Restart...
JDK jdk-8u131-macosx-x64
Rebuild Project
Gradle Plugin
以上所有方法都无助于保持Android Studio的稳定性。
我正在使用带有16Gb RAM,核心i7,MacOS Sierra 10.12.5
的Macbook,而且我不认为挂起是关于我的笔记本电脑规格,
所以我在这里报告我的情况,并希望有人可以帮我给我新的推荐。任何想法或建议都表示赞赏。
更新:我在~/Library/Logs/Android Studio2.3/
下检查Android Studio的日志,并查看一些异常日志文件。以下是最新的一个:
2017-07-04 19:14:35,633 [1233357] INFO - roid.sdk.MessageBuildingSdkLog - Exception from KotlinOutputParser
2017-07-04 19:14:35,633 [1233357] INFO - roid.sdk.MessageBuildingSdkLog - com.android.ide.common.blame.Message.<init>(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList)
java.lang.NoSuchMethodException: com.android.ide.common.blame.Message.<init>(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:171)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:143)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSimpleMessageConstructor(KotlinOutputParserHelper.kt)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250)
at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage$default(KotlinOutputParserHelper.kt:244)
at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41)
at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java:28)
at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86)
at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43)
at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.lambda$collectMessages$5(GradleTasksExecutor.java:516)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:307)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
更新2 有时Android Studio会显示错误报告对话框,其中包含以下消息:
Cannot add jps/kotlin-jps-plugin.jar from plugin 'Kotlin' to external compiler classpath: home directory of plugin not found
答案 0 :(得分:0)
最后,我可以构建并继续编码而不会崩溃(至少1小时后我不会崩溃)。
对于Android Studio 2.3,我选择了File > Power Save Mode
,因此不会再出现问题。更糟糕的是我不能在后台使用智能自动完成或自动构建。
然后,我使用Android studio 3.0 Preview Canary 5
再次安装Gradle tool 3.0.0 alpha5
。修复所有编译警告(例如用新的替换已弃用的gradle函数),将所有库更新到最新版本,......它可以工作!
现在我有两个版本的Android Studio同时运行。旧的以省电模式运行,新的以省电模式运行。