从Android Studio 2021.3.1升级到2022.1.1后,同步失败并且“找不到要构建的Gradle任务”

t9aqgxwy  于 2023-01-31  发布在  Android
关注(0)|答案(1)|浏览(746)

我发现了几个描述类似问题的SO帖子,但它们都已经过时了,没有一个被发现对我升级到最新版本的Android Studio有帮助。
将我的Android Studio从版本2021.3.1升级到版本2022.1.1后,我尝试File > Sync Project with Gradle Files导致同步失败(在不到200毫秒内)。
当我尝试Build > Rebuild Project时,我得到以下错误:

Unable to find Gradle tasks to build: [:]. 
Build mode: REBUILD. 
Tests: None.

1.在我的任何settings.gradle文件中都没有:app
1.我做了File > Invalidate Caches...(所有的),并重新启动AS,但这没有帮助。
1.我还删除了所有的build文件夹,但这没有帮助。
你知道怎么解决吗?
右键单击Sync failed to Reload Gradle Project会导致相同的失败,但它现在会在编辑器窗口顶部打开一个带有Show Log in Explorer链接的栏。当我单击它时,我确实在C:\Users\WebViewer\AppData\Local\Google\AndroidStudio2022.1\log中找到了idea.log。我正在检查它...

    • 更新日期:**

我在idea.log中注意到的第一件事是以下异常:

org.gradle.tooling.GradleConnectionException: Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.4-bin.zip'.
...
Caused by: org.gradle.internal.jvm.JavaHomeException: The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files\Android\Android Studio\jre\bin\java.exe

多亏了this SO tip,我做了mklink /D "jre" "jbr",这让Android Studio突然恢复了活力,并开始下载大量与Gradle相关的软件包。
我仍然有"Gradle同步问题",但至少Android Studio现在会提示我如何解决这些问题:

但是...根据https://developer.android.com/reference/tools/gradle-api,Gradle的当前版本为7.4.0,为什么Android Studio要求最低版本为7.5

zz2j4svz

zz2j4svz1#

问题解决。

为了所有人的利益,我在这里发布了我所做的解决它的总结:
1.当Android Studio只提供简洁的“同步失败”时,C:\Users\<yourname>\AppData\Local\Google\AndroidStudio2022.1\log\idea.log是找到谜团线索的关键。
1.在我的例子中,无法找到并运行嵌入式Java版本,所以我执行了mklink /D "jre" "jbr",它奇迹般地恢复了构建过程(请参见https://github.com/flutter/flutter/issues/106674#issuecomment-1381685888)。
1.在File > Settings > Build Tools > Gradle下,这是适合我的Java版本:

1.然后,我尝试按照Sync的输出使用Gradle 7.5.0。在我的顶层build.gradle中的任何存储库上都找不到它,结果我只能穷追不舍...根据https://developer.android.com/reference/tools/gradle-api,Gradle的当前版本是7.4.0,所以我恢复使用它(为什么第一次不起作用,我不知道),下面是我的工作顶层构建版本。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        gradlePluginPortal()  
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.0'
        classpath("de.mannodermaus.gradle.plugins:android-junit5:1.8.2.1")
        classpath("org.mockito:mockito-inline:4.11.0")
    }
}

allprojects {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
    }

}

相关问题