【问题标题】:Android studio 2.3 always hangs outAndroid studio 2.3 总是挂掉
【发布时间】: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


【解决方案1】:

最后我可以构建并继续编码而不会崩溃(至少 1 小时后我不会崩溃)。 对于 Android Studio 2.3,我选择 File &gt; Power Save Mode,这样它就不会再出现了。更糟糕的是我无法在后台使用智能自动完成或自动构建。

然后,我再次安装Android studio 3.0 Preview Canary 5,使用Gradle tool 3.0.0 alpha5。修复所有编译警告(例如用新的替换不推荐使用的 gradle 函数),将所有库更新到最新版本,......它有效!

现在我有 2 个版本的 Android Studio 同时运行。旧的运行省电模式,新的运行正常模式。

【讨论】:

  • 您解决了 NoSuchMethodException 错误吗?我有同样的问题。
  • 是的,我做了,请尝试我在答案中提到的步骤
猜你喜欢
  • 1970-01-01
  • 2017-07-23
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多