【问题标题】:Execution failed for task ':app:uploadCrashlyticsMappingFileRelease'.Host name must not be empty任务 ':app:uploadCrashlyticsMappingFileRelease' 执行失败。主机名不能为空
【发布时间】:2021-04-05 20:53:28
【问题描述】:

在尝试创建发布签名的 apk 时,构建在任务中失败
app:uploadCrashlyticsMappingFileRelease'.Host name must not be empty.

我已启用混淆

buildTypes {

        release {

            minifyEnabled true // Enables code shrinking, obfuscation, and optimization

            shrinkResources true // Enables resource shrinking, which is performed by the Android Gradle plugin


            firebaseCrashlytics {

                mappingFileUploadEnabled true
            }

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

另外,使用

    apply plugin: 'com.android.application'
    
       apply plugin: 'com.google.gms.google-services'
    
       // Apply the Crashlytics Gradle plugin
    
       apply plugin: 'com.google.firebase.crashlytics'
    
        implementation 'com.google.firebase:firebase-auth:20.0.1'
        implementation 'com.google.firebase:firebase-firestore:22.0.1'
        implementation 'com.google.firebase:firebase-core:18.0.0'
    
        //the Firebase SDK for Google Analytics.
        implementation 'com.google.firebase:firebase-analytics:18.0.0'
    
        //the Firebase Crashlytics SDK.
        implementation 'com.google.firebase:firebase-crashlytics:17.3.0'

和,

        classpath 'com.google.gms:google-services:4.3.4'  // Google Services plugin

        // Add the Crashlytics Gradle plugin.
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'

有人遇到同样的问题吗? 我尝试清除 gradle 缓存并删除 crashlytics 依赖项,因为我读到它将由 Android Studio 自动处理,但那时不会记录崩溃。

我使用的是 Android Studio 4.1.1(从之前的版本升级)

Build #AI-201.8743.12.41.6953283,构建于 2020 年 11 月 5 日运行时 版本:1.8.0_242-release-1644-b3-6222593 amd64 VM:OpenJDK 64 位 JetBrains s.r.o Linux 5.4.0-58-generic GC 的服务器 VM:ParNew, ConcurrentMarkSweep 内存:1246M 内核:4 注册表: ide.new.welcome.screen.force=true, external.system.auto.import.disabled=true 非捆绑插件: com.android.tool.sizereduction.plugin 当前桌面:ubuntu:GNOME。

【问题讨论】:

    标签: android android-studio proguard obfuscation crashlytics


    【解决方案1】:

    如果您使用的是 Android Studio 4.0 或更高版本,肯定会出现此问题。您需要从 Gradle 文件中删除这些 Crashlytics 行,因为它将由工作室自动管理。

    build.grade(Module:app)

    apply plugin: 'com.google.firebase.crashlytics
    implementation 'com.google.firebase:firebase-crashlytics:X.X.X'
    

    build.grade(Project:appname)

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

    检查您的 Gradle 脚本根目录。如果有这个文件:gradle.properties(全局属性),请检查值是否正确。
    删除了所有这些属性,我的问题就解决了

    systemProp.http.proxyHost=
    systemProp.http.proxyPort=80
    systemProp.https.proxyHost=
    systemProp.https.proxyPort=80
    

    【讨论】:

    • 试过这个,但没有记录崩溃。它不工作。这对你有用吗?
    • 在 gradle.properties 中没有这些行
    【解决方案2】:

    这里有两种可能的修复方法...

    第一个不太可能的解决方案是重新排列 build.gradle 项目文件中插件的顺序,并将 apply plugin: 'com.google.firebase.crashlytics' 放在项目构建中的 google-services 顶部插件调用下方.gradle 文件,以便在调用其他库或应用所需的其他插件之前在顶部进行此安排 就这样

    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'
    

    - 可能从 android studio 4.0 开始的第二个解决方案是在您的计算机上编辑您的全局 gradle.propeties 文件安装...

    这是更清晰的修复,下面有图片...(因为有些人可能认为 "gradle.properties" 文件正在讨论这是 AS 项目中的内容,而不是全局项目。

    从您的 PC gradle 安装位置的 "gradle.propeties" 文件中删除以下行

    systemProp.http.proxyHost= systemProp.https.proxyHost= systemProp.https.proxyPort=80 systemProp.http.proxyPort=80

    如下图所示,这是 gradle.propeties 文件的典型文件位置

    现在在您的项目和 VIOLA 中单击重建...问题解决了

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2020-03-07
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多