flutter应用程序构建错误 FAILURE: Build failed with an exception

回答 4 浏览 393 2022-10-31

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve com.facebook.android:facebook-android-sdk:latest.release.
     Required by:
         project :app
      > Failed to list versions for com.facebook.android:facebook-android-sdk.
         > Unable to load Maven meta-data from https://jcenter.bintray.com/com/facebook/android/facebook-android-sdk/maven-metadata.xml.
            > Could not HEAD 'https://jcenter.bintray.com/com/facebook/android/facebook-android-sdk/maven-metadata.xml'.
               > Read timed out

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 8s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

这是我在运行应用程序时得到的错误。

我试着在build.gradle文件中加入mavenCentral(),就像外面的一些建议一样,但这对我来说并不奏效。我还试过

 implementation 'com.facebook.android:facebook-android-sdk:latest.release'

但仍然是一样的

sachin 提问于2022-10-31
4 个回答
#1楼
得票数 1

我现在也遇到了同样的问题,我发现有一个jcenter出现了故障。

https://status.gradle.com/

Pavlo Trinko 提问于2022-10-31
那么,解决方案是什么呢?Ares 2022-10-31
我按照这个解决方案stackoverflow.com/a/74261013/7914759,从我的build.gradle中删除了jcenter,一开始在没有互联网连接的情况下构建应用程序,然后用它重新构建。这对我来说是有效的。Pavlo Trinko 2022-10-31
这在CI/CD中是行不通的。Ares 2022-10-31
#2楼 已采纳
得票数 0

你好,在你的build.gradle中,你不应该添加实现"com.facebook.android:facebook-login:15.0.2",因为这个插件已经为你定义了这个依赖项。

参考文献:https://github.com/darwin-morocho/flutter-facebook-auth/issues/301#issuecomment-1296944186

从build.gradle中删除这一行。 implementation 'com.facebook.android:facebook-android-sdk:latest.release'

Mihir Joshi 提问于2022-10-31
#3楼
得票数 0

作为临时措施

我建议使用这个方法

allprojects {
    repositories {
        // Jcenter mirror
        maven { url "https://maven.aliyun.com/repository/jcenter" }
        // other repo
    }
}

或其他镜像

---更新 ----

以另一种方式

allprojects {
    repositories {
        all { ArtifactRepository repo ->
            if (repo instanceof MavenArtifactRepository) {
                if (repo.url.toString().startsWith('https://jcenter.bintray.com/')) {
                    remove repo
                    add(mavenCentral())
                }
            }
        }
    }
}

如果jcenter的网址存在,这段代码会改变为mavenCentral的网址。

Goodham 提问于2022-10-31
Goodham 修改于2022-11-01
没有成功。有什么其他的方法可以解决吗?sachin 2022-10-31
你是否删除了Jcenter()这一行?Goodham 2022-10-31
我试过这两种情况,一次使用Jcenter(),另一次删除它,都没有成功。sachin 2022-10-31
它并不奏效。Ares 2022-10-31
更新的帖子。请查看Goodham 2022-11-01
#4楼
得票数 0

根据官方文档,jcenter已经失效,Bintray/JCenter users should start migrating to a new hosting solution.的解决方案是将jcenter从build file中移除,并将其替换为

mavenCentral() // <- add it

对于react-native用户来说,jcenter()可能存在于你最近安装的某些部署中。要检查jcenter,请在android-studio中打开你的项目,以便轻松地检查所有build.gradle文件。

另一个解决方案是,将你的系统从互联网上断开,然后建立你的项目。

Engr.Aftab Ufaq 提问于2022-11-05