Gradle 错误:仅在 Android Studio 中允许从事件调度线程进行写访问
Posted
技术标签:
【中文标题】Gradle 错误:仅在 Android Studio 中允许从事件调度线程进行写访问【英文标题】:Gradle error: Write access is allowed from event dispatch thread only in Android Studio 【发布时间】:2017-02-11 04:30:27 【问题描述】:在将 android Studio 更新到 2.2 版(在 Windows 10 上)之后,不知何故,第二天早上我在任何项目上构建 gradle 时都收到了这样的错误:
仅允许从事件调度线程进行写访问
尽管 gradlew -build 命令工作并成功完成。 我尝试了典型的 Android 开发者的 WTF 修复集:清理构建、无效缓存、删除构建文件夹、删除 .gradle 文件夹、尝试不同的 gradle 设置,甚至重新安装 Android Studio,但没有任何帮助。
我创建这个问题只是为了与社区分享我的经验,因为我在上面浪费了两个小时。
【问题讨论】:
仅将 SDK 放在 Andoid Studio 中。 【参考方案1】:所以问题的结论是 Android Studio 与我安装的 JDK 版本冲突,所以当我检查 JDK 位置(文件 → 项目结构 → SDK 位置),勾选“使用嵌入式 JDK”复选框并将 JDK 位置设置为'Android Studio 路径'\Android Studio\jre
【讨论】:
对我来说效果很好!非常感谢! 完美答案!立即工作。就在我阅读此答案后单击打开项目结构时,项目结构对话框本身在对话框底部显示一条消息,指出“请选择有效的 JDK 目录”,并附有一个导航按钮,单击该按钮导航到 JDK位置文本框也是如此。我目前在我的 Ubuntu 上使用 Android Studio 3.1.3。谢谢!【参考方案2】:android studio 与安装的 jdk 冲突时出现问题 版本,转到(文件->项目结构-> SDK位置),检查 “使用嵌入式 JDK”复选框并将 jdk 位置设置为“android 路径” studio'\Android Studio\jre :) 简单
【讨论】:
【参考方案3】:这对我不起作用,我运行了一个“gradle clean build”命令,我发现 gradle 中的一行存在冲突,删除它并同步项目 (as in this pic)
【讨论】:
这对我来说是解决这个问题的方法,它可能会帮助其他有相同问题的人【参考方案4】:我的问题是我在清理硬盘空间时删除了我正在使用的 SDK。
要解决此问题,请首先检查您安装了哪些 SDK,或在工具 > SDK 管理器中安装一个。
然后您可以将 app build.gradle 中的 compileSdkVersion 和 targetSdkVersion 更改为您安装的 sdk 版本。
否则,您可以重新安装您使用的任何 sdk。
【讨论】:
【参考方案5】:在 Android Studio 3.2.1 中,转到文件 -> 项目结构 -> SDK 位置并选中“使用嵌入式 JDK(推荐)”复选框。
【讨论】:
以上是关于Gradle 错误:仅在 Android Studio 中允许从事件调度线程进行写访问的主要内容,如果未能解决你的问题,请参考以下文章
R8 / Android Gradle插件是否足够聪明,可以仅在测试apk中保留所需的库类/方法?