无法解析 io.fabric.tools:gradle:1.+

Could not resolve io.fabric.tools:gradle:1.+

我在构建项目时遇到问题。第一次搭建。我在代理后面,所有其他依赖项都下载了,只有这个有问题。

我尝试了一些在 SO 上找到的选项,但到目前为止还没有成功。有人可以告诉我如何解决这个问题吗?

到目前为止我尝试过的事情:

app/build.gradle

buildscript {
    repositories {
        maven { url https://maven.fabric.io/public }
        mavenCentral()
        jcenter()
    }
}

apply plugin: 'io.fabric'

dependencies {
    compile("com.crashlytics.sdk.android:crashlytics:2.5.5@aar") {
        transitive = true
    }
}

根目录build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

错误:

Failed to list versions for io.fabric.tools:gradle.
  Unable to load Maven meta-data from https://maven.fabric.io/public/io/fabric/tools/gradle/maven-metadata.xml.
    Could not GET 'https://maven.fabric.io/public/io/fabric/tools/gradle/maven-metadata.xml'.
      Connect to maven.fabric.io:443 [maven.fabric.io/54.230.133.33] failed: Connection refused: connect
Could not resolve io.fabric.tools:gradle:1.+.
  Failed to list versions for io.fabric.tools:gradle.
    Unable to load Maven meta-data from https://jitpack.io/io/fabric/tools/gradle/maven-metadata.xml.
      Could not GET 'https://jitpack.io/io/fabric/tools/gradle/maven-metadata.xml'.
        Connect to jitpack.io:443 [jitpack.io/104.24.23.62, jitpack.io/104.24.22.62] failed: Connection refused: connect
Could not resolve io.fabric.tools:gradle:1.+.
  Failed to list versions for io.fabric.tools:gradle.
    Unable to load Maven meta-data from https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml.
      Could not GET 'https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml'.
        Connect to repo1.maven.org:443 [repo1.maven.org/151.101.24.209] failed: Connection refused: connect
Could not resolve io.fabric.tools:gradle:1.+.
  Failed to list versions for io.fabric.tools:gradle.
    Unable to load Maven meta-data from https://jcenter.bintray.com/io/fabric/tools/gradle/maven-metadata.xml.
      Could not GET 'https://jcenter.bintray.com/io/fabric/tools/gradle/maven-metadata.xml'.
        Connect to jcenter.bintray.com:443 [jcenter.bintray.com/75.126.118.188] failed: Connection refused: connect

好吧,错误似乎很清楚。您无法通过 HTTPS 连接到任何一个存储库。由于不太可能所有这些都已关闭并且您已经说过您在代理后面,请按照用户指南中的描述通过 Gradle 属性配置 HTTPS 代理,您应该没问题。

如果您在 Gradle 端正确配置了代理,代理可能会因某些情况阻止请求。在那种情况下,您可能应该询问该代理的维护者。

遇到了同样的问题。 我通过为 android studio 安装最新的 fabric 插件来解决它。

将以下内容添加到 build.gradle .

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {

        classpath 'io.fabric.tools:gradle:VVV'
    }
}
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

WHERE VVV 是最新版本。在我的例子中,VVV 是 1.31.2

将此添加到清单

<meta-data
            android:name="io.fabric.ApiKey"
            android:value="xxxxxxxxxxxxxxxxxxxxxxx" />

其中 xxxxxxxxxxxxxxxx 是您获得的值。

将此添加到您的启动器 class。

Fabric.with(这个,Crashlytics())

重建项目,一切顺利。

嗯,首先将这些添加到 gradle.properties(项目属性)

对于 http 使用:

systemProp.http.proxyHost=your_proxy_host
systemProp.http.proxyPort=your_proxy_port
systemProp.http.proxyUser=your_proxy_username
systemProp.http.proxyPassword=your_proxy_password

对于 https 使用:

systemProp.https.proxyHost=your_proxy_host
systemProp.https.proxyPort=your_proxy_port
systemProp.https.proxyUser=your_proxy_username
systemProp.https.proxyPassword=your_proxy_password

然后转到文件 -> 设置 -> 外观和行为 -> 系统设置 -> HTTP 代理,select 手动代理配置,select HTTP,输入主机名,输入端口号, select 代理认证,输入login(你的代理用户名),输入password(你的代理密码),(注意你可以选择Check connection)然后Apply和OK。完成!!!

使用此 link 查找最新的结构 gradle 插件

Latest Fabric Gradle Plugin

避免在版本号中使用+;可能导致不可预测和不可重复的构建 (io.fabric.tools:gradle:1.+)

在依赖项中使用 + 可以让您自动选择最新的可用版本,而不是特定的命名版本。但是,不推荐这样做;您的构建不可重复;您可能已经使用与构建服务器使用的版本略有不同的版本进行了测试。 (使用动态版本作为主版本号比在次版本位置使用更容易出问题。)

这个错误:

Could not find any matches for io.fabric.tools:gradle:1.+ as no versions of io.fabric.tools:gradle are available.

happens when the option "Offline work", located in Settings->Build, Execution, Deployment->Gradle->Global Gradle settings 被选中。

要解决问题,你必须改变:

发件人:io.fabric.tools:gradle:1.+

收件人:io.fabric.tools:gradle:1.0

当您这样做时,Android Studio 本身会警告您有关最新版本的信息。在我的例子中是:1.25.4。 所以,就我而言,它是这样的:

dependencies { 
    classpath 'com.android.tools.build:gradle:3.2.0' 
    classpath 'io.fabric.tools:gradle:1.25.4' 
}

希望对其他人有所帮助。

遇到了同样的问题,已通过将结构 gradle 升级到最新版本来解决。下面是代码,

dependencies {
    classpath 'io.fabric.tools:gradle:1.25.4'
}

像这样编辑项目Gradle

buildscript {

repositories {
    google()
    jcenter()
    maven {
        url 'https://maven.fabric.io/public'
    }
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'
    classpath 'com.google.gms:google-services:3.3.0'
    classpath 'io.fabric.tools:gradle:1.25.4'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    google()
    jcenter()
    maven {
        url 'https://maven.google.com/'
    }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

我遇到了这个问题,我通过启用 gradle 离线支持解决了它, 如果你不想以后再重复这个问题。

我会建议您启用gradle离线支持,它将解决问题。

您以后可以随时轻松 disable/enable 离线支持。

请检查以下内容

转到首选项 > Gradle 和 check/uncheck "Offline work"。

    *Add the following in your project/build.gradle**
    buildscript {

    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {

        classpath 'io.fabric.tools:gradle:1.25.4'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    }

**Add the following in your app/build.gradle**

 apply plugin: 'io.fabric'//on top 

   dependencies {
    //Crashlytics
   implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
}

我遇到了同样的问题,只要确保按照以下步骤操作即可成功安装 crashlytics:

1) 在你的项目级别添加这个 gradle:

buildscript {
    repositories {
        google()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'io.fabric.tools:gradle:1.27.1'
    }
}
allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
}

2) 在您的应用级别 gradle

在文件的开头添加:

apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

并在依赖块中添加:

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'

添加所有这些之后,它终于对我有用了。希望能帮助到你。干杯

可能是因为域名被https://github.com/notracking/hosts-blocklists which uses various of sources to collect a blacklist https://github.com/notracking/hosts-blocklists/blob/master/SOURCES.md

列入黑名单

作为解决方法,您可以覆盖列入黑名单的条目(dnsmasq 示例)

# conf-file=/etc/dnsmasq/blocked_domains.txt
address=/fabric.io/50.19.118.60
address=/maven.fabric.io/99.86.238.75

IP 地址可能会改变。你得自己检查一下。

或在 build.gradle

中使用 IP 而不是主机名

我 尝试添加 maven repo url 但没有成功,问题是 Firebase Crashlytics 已决定将其依赖项名称从

更改
io.fabric.tools:gradle

com.google.firebase:firebase-crashlytics-gradle

通过 Firebase 收购 Fabric。

所以

classpath "io.fabric.tools:gradle:1.25.4"

使用

classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.0'

并更改

apply plugin: 'io.fabric'

apply plugin: 'com.google.firebase.crashlytics'

参考资料