【发布时间】:2017-07-04 07:15:00
【问题描述】:
我在 gradle 2.3.3 中使用 Android Studio 2.3。我面临一个奇怪的问题并被困了一个星期。当我键入一些代码行时,它经常挂起,就在它显示auto complete 框之前。
或者,如果我没有输入任何内容,而是使用Command-click 查找变量或方法的实现,它会显示对话框显示Resolving Reference 并挂在那里。
有时,如果我切换到另一个应用程序一段时间再切换回查看 Android Studio,它也会挂起。
我已经尝试了很多不同的方法,但都没有帮助,包括:
- 完全按照this answer删除Android studio,然后重新下载安装。
- 转到菜单
File > Invalidate Cache/Restart... - 删除 JDK 并重新安装。我正在使用从here 下载的
JDK jdk-8u131-macosx-x64 - 删除所有构建文件夹和
Rebuild Project - 回滚到我过去成功构建的项目的稳定源代码。
- 尝试使用 Android Studio 3.0 预览版
- 降级或升级
Gradle Plugin - 下载 JDK 包并将其替换为 Android Studio follow this thread
以上所有方法都无助于保持我的 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
【问题讨论】:
-
我不知道在 Mac 上是否可行,但在 Linux 上,我可以通过启动脚本
bin/studio.sh从控制台运行 Android Studio,并在控制台上查看错误消息。也许尝试在你的 Mac 上做同样的事情,我认为应该可以从终端的命令行运行程序。您还应该查看日志(在 Linux 上,它们位于~/.AndroidStudio2.3/system/log) -
我不能像你说的那样启动AS,但是我找到了idea log,查看我的日志更新,有一些异常日志我认为是AS的问题
-
这不应该显示我认为的那种弹出消息,它只会导致 Kotlin 项目编译错误,但我可能错了
标签: android android-studio java-8