Gradle同步失败,原因未知 - Android studio 4.2.1

54

触发了一些操作以启动 Gradle同步(例如添加了一个模块,其compileSdkVersion与我的项目不同,在其自己的build.gradle 文件中可见),但在事件日志中看到“Gradle同步已启动”之后,我很快遇到了以下问题:

Gradle同步失败:同步失败,原因未知

尝试的解决方案

  1. 清除缓存并重新启动
  2. 重新安装Android Studio并重新克隆项目
  3. 更改Gradle版本
  4. 删除“.gradle”和“.idea”文件夹
  5. 从命令行运行Gradle build
  6. 切换离线模式
  7. 手动指定Gradle文件

[使用Android Studio 4.2.1和Gradle 6.5,但可能会在其他IDE / Gradle组合中遇到此问题,因为问题最有可能源于我更改的依赖项。]


您需要分享应用程序和项目的完整Gradle文件,这样有助于找到问题。 - Muhammad Zahab
11个回答

70

在您的截图中,编辑器区域顶部有一个信息栏,“Gradle项目同步失败。基本功能将无法工作。” 点击“在Finder中显示日志”,您可以在日志文件中检查真正的原因。

在我的情况下,我发现“模块:'xxxxx'平台'android-26'未找到”,这意味着缺少平台26。下载平台API级别26后,问题得到解决。


17
非常感谢你的帮助。如果有其他人在阅读这条评论,请注意,在你的项目中打开能够在中心编辑区域编辑的任何文件即可显示具有“在查找器中显示日志”的标头。请记得不要改变原文意思,尽可能使翻译更加通俗易懂。 - Fearnbuster
我遇到了同样的问题,我查看了日志并发现缺少API级别30,我下载了它并解决了问题。谢谢。 - Diego Farias
是的,请阅读idea.log文件。它提供了您需要修复问题的所有信息。 - OneWorld
2
两个小时都白费了,多亏了 AS 团队 ;) - Daniel Wilson
在我的情况下,关闭AS并删除此日志文件可以解决错误。虽然令人惊讶但却是真实的。不知道为什么这个日志文件会导致“Gradle同步失败:同步失败:原因未知(32秒930毫秒)”的问题。 - Smeet
谢谢你的解决方案,它有效了。 - Satya Attili

23

我只是将插件版本和Gradle版本更改为4.2.1和6.7.1,然后它就对我起作用了。 - PRANAV SINGH

14

在新的Arctic Fox版本中,我遇到了类似的问题。查看了idea.log文件(应该位于/Users/username/Library/Logs/Google/AndroidStudioXX.XX/idea.log),发现缺少一些外部库所需的Android SDKs(我正在开发React Native)。

  1. 只需要查找包含Module: xx platform 'android-yy' not found.信息的行。
  2. 使用SDK Manager并安装SDK版本yy。
  3. 清除缓存并重启。

在我的情况下,我缺少多个SDKs,因此重启后仍无法解决问题;我必须再次重复步骤1至3。


1
这并没有提供问题的答案。一旦您获得足够的声望,您就可以评论任何帖子;而是,提供不需要求问者澄清的答案。 - 来自审核 - Kishan Solanki
这个答案对我这个新手安卓开发者来说救命了。 - BoCyrill
在使用ExoPlayer作为库时,我遇到了这个问题。idea.log显示:ERROR - intellij.openapi.progress.Task - Module: 'exoplayer-extension-cast' platform 'android-28' not found. - 在添加SDK API Level 28之后,该项目得以解决。 - Ben
你救了我的一天..谢谢! - Wijay Sharma

13

安装新环境时,进入SDK管理器并安装必要的API(例如从28安装至33)。

最后进入应用级别的Gradle并再次立即同步


1
请打开您当前项目的Gradle(应用程序级别)并检查目标和编译SDK,然后打开SDK管理器并下载必要的API。谢谢。 - Amr
1
这就是对我有效的方法。幸运的是,这是我尝试的第一个解决方案,而不是这里的其他答案。起初我有点怀疑,但是在尝试之后,Gradle确实能够很好地同步,没有问题。 - Chen Li Yong

4
你在Android Studio上安装了所有所需的SDK包吗?
因为我通过安装一些以前没有安装的SDK包来解决了问题。 请检查是否有遗漏的SDK包。
若想确定是否已完成安装,可以查看事件日志选项卡中的这些消息(参考图片)https://istack.dev59.com/ids61.webp

你能添加一些文本或者不需要重定向(比如在不同网站上的图片等)的内容吗? - Samet Sökel
请在您的回答中提供更多细节。目前的写法让人难以理解您的解决方案。 - Community
我在Android Studio上拍摄的截图对于理解Gradle问题解决后Log选项卡报告的内容非常有用。因为当该问题出现时,没有更多关于其原因的细节,唯一能让你了解你所做的就是Log选项卡。 - BatAmbra

2
我曾经遇到过同样的问题,在试过很多方法都无效后,我通过以下步骤解决了它:
  1. 检查您应用 gradle 文件中的 compileSdkVersion 30targetSdkVersion 30 值。

  2. 如果这些值为 30,则必须确保当您点击 Android Studio 左上角的 SDK 管理器 时,您已安装了该 SDK 版本。

  3. 否则,您可以从弹出的对话框中 安装它。在我的情况下,由于我刚刚更新了 Android Studio,我的应用程序 gradle 文件来自公司代码的一个 pull request,版本号为 30,但我只安装了版本号为 31 的 SDK。

  4. 因此,我没有费力地安装 SDK level 30,而是在 gradle 应用文件中将我的值从 30 更改为 31。

gradle sync 后一切正常。然后,当我有时间时,我会回去安装版本号为 30 并恢复值。

希望这能帮助到某些人,因为我花了一些时间来解决这个错误。


1

尝试了上述所有选项,最终删除项目结构中的.gradle文件夹并使缓存无效以重新启动IntelliJ,这解决了问题。


1
如果您刚安装了Android Studio,您应该:
  1. 如果尚未安装Java(如果重新安装Windows则跳过此步骤),请安装Java。
  2. 菜单->无效缓存/重启,然后尝试同步Gradle(如果问题仍然存在,请转到步骤3)。
  3. 转到工具-> SDK管理器->并安装任何缺少的SDK版本(之后同步Gradle),如果所有Android版本都在您的目标版本之前和编译的SDK版本之后安装,则转到Stack Overflow上的另一个线程!否则,进入步骤4。
  4. 如果您保持设备连接并等待出现运行配置,请接受Android设备上的调试对话框/密钥(等待几秒钟让对话框显示出来。如果在步骤4中没有呈现对话框,请转到步骤5)。
  5. 断开USB电缆,然后重新连接。
请确保在步骤4中接受SDK许可证。

1
第三步可能需要更清晰一些;您不应该需要安装所有的SDK,但至少您应该安装自己应用程序模块的compileSdkVersion版本,以及任何依赖模块的版本,都在它们各自的build.gradle文件中指定。对于flutter,使用他们的工具构建应该会自动下载构建所有额外依赖所需的SDK。但是,在Android Studio中查看时,当被告知与gradle文件同步并在Build工具窗口的错误中看到缺少的SDK线索时,我之前遇到过这个错误。 - qix

0
我刚安装了Android Studio并开始遇到这个问题。尝试了各种解决方案后,我发现API Level 30SDK Platform未安装,但已安装API Level 31SDK Platform,而我的项目正在使用API Level 30
因此,我安装了API level 30 SDK Platform,问题得到了解决。

0
  1. 只需进入“运行/编辑配置”,并向下滚动窗口底部,您可以看到“启动前”选项。
  2. 删除小窗口中已有的任何内容。
  3. 然后点击(+)图标并选择“Gradle-aware Make”,然后键入“assembleDebug”,并选择第一个选项或您需要的选项。这将解决您的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接