【问题标题】:NoClassDefFoundError on com.google.android.gms.internal.firebase-perf.zzwcom.google.android.gms.internal.firebase-perf.zzw 上的 NoClassDefFoundError
【发布时间】:2018-08-20 15:06:31
【问题描述】:

从 Firebase Crashlytics 收到的崩溃报告数量。我认为这与 firebase-perf 有关。

Fatal Exception: java.lang.NoClassDefFoundError: com.google.android.gms.internal.firebase-perf.zzw
   at com.google.firebase.perf.metrics.Trace.start(Unknown Source:44)
   at com.google.android.gms.internal.firebase-perf.zze.onActivityStarted(Unknown Source:48)
   at android.app.Application.dispatchActivityStarted(Application.java:205)
   at android.app.Activity.onStart(Activity.java:1150)

已在使用最新版本的 Firebase 和 Google Play 服务。

它不会在 Firebase 测试实验室中的设备上崩溃。但是大约 1% 的用户面临这个问题。

是否与 GMS Core 缺失有关?如果是这样,如何正确处理它,而不导致这些设备崩溃?

--- 更新---

项目构建.gradle

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

    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha04'
        classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

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

应用构建.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.2'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "MASKED"
        minSdkVersion 18
        targetSdkVersion 28
        versionCode "MASKED"
        versionName "MASKED"
        resConfigs "en"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
        dataBinding {
            enabled = true
        }
    }


    buildTypes {
        release {
            minifyEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
        textReport true
        textOutput 'stdout'
        checkReleaseBuilds false

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
    implementation 'androidx.annotation:annotation:1.0.0-rc01'
    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
    implementation 'androidx.leanback:leanback:1.0.0-rc01'
    implementation 'androidx.cardview:cardview:1.0.0-rc01'
    implementation 'androidx.gridlayout:gridlayout:1.0.0-rc01'
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    implementation 'com.google.firebase:firebase-config:16.0.0'
    implementation 'com.google.firebase:firebase-perf:16.0.0'

    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'com.google.android.gms:play-services-oss-licenses:16.0.0'
    implementation 'com.google.android:flexbox:1.0.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'

}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

【问题讨论】:

  • 请为您的两个build.gradle 文件添加内容。
  • 发生异常的设备的API级别是多少?我在 API 28 上看到了这个问题。
  • 不同的 API 级别面临这个问题。从 Android 5.1.1 到 Android 8。但主要是 Android 6。
  • 这也发生在我身上。
  • 您好!我来自 Firebase 性能监控团队。我有几个问题可以帮助我们找出这个错误在哪里。 1. 在 android studio 或通过 crashlytics 的生产应用程序上运行时,您是否看到此问题? 2.如果是crashlytics,你用Android App Bundles吗(developer.android.com/platform/technology/app-bundle)

标签: android firebase google-play-services firebase-performance


【解决方案1】:

Firebase 支持人员刚刚确认我这是一个错误。他们现在正在研究这个(尽管他们还不能重现它)。因此,我们应该期望在未来的 Firebase 版本中解决此问题。

【讨论】:

  • Firebase 支持是否提出了解决此问题的建议?我无法弄清楚我需要做什么库或工具降级才能恢复到工作配置。
  • 在我将 com.google.firebase:firebase-perf 升级到 16.1.0 后,我的用户也开始遇到崩溃,只是要回滚到 16.0.0
  • @niqueco 我们可以获取错误报告的链接吗?
  • @MinasMina 没有错误报告。我与 Firebase 支持人员进行了交谈。他们确认了这个问题,但他们无法重现它。昨天我收到最后一封电子邮件说,由于他们仍然无法在本地复制它,他们将关闭我的报告并“监控”情况。 (?)
  • 我面临着同样的事情。版本为 16.1.0。要重现,请启动应用程序并等待 30 分钟。该应用将永远不会再次启动。
【解决方案2】:

更新:请更新到 Firebase 性能版本 16.2.5 以解决此问题。

【讨论】:

  • 更新:删除 multidex 后问题似乎消失了。
  • 我可以重现错误!!!我现在手里有一个设备,我可以在任何我想要的地方复制它
  • @everyone - 请尝试使用 Firebase 性能 SDK 的 16.2.0 版本 - 我们已经为其添加了一个潜在的修复程序。谢谢!
  • @Tejas 这仍然发生在 16.2.0 上。使用 com.google.firebase:firebase-plugins:1.1.5
  • @LukeBrandonFarrell 你能分享这个问题的堆栈跟踪吗? (理想情况下上传到 github gist 或 pastebin)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
  • 2014-07-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多