You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 8-12应用崩溃求助:java.lang.NoClassDefFoundError问题

Android 8-12版本应用崩溃问题求助

我的应用在Android 8到12版本上频繁崩溃,收到Google Play的崩溃报告,核心错误是java.lang.NoClassDefFoundError,找不到com/google/firebase/messaging/FirebaseMessaging类。

崩溃堆栈跟踪

Type java.lang.NoClassDefFoundError

Exception java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/FirebaseMessaging;
  at me.pushy.sdk.util.PushyFirebase.register (PushyFirebase.java:12)
  at me.pushy.sdk.Pushy.register (Pushy.java:213)
  at me.pushy.sdk.cordova.internal.PushyPlugin.register (PushyPlugin.java:245)
  at me.pushy.sdk.cordova.internal.PushyPlugin.access$000 (PushyPlugin.java:27)
  at me.pushy.sdk.cordova.internal.PushyPlugin$1.run (PushyPlugin.java:53)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:929)

Exception java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/FirebaseMessaging;
  at me.pushy.sdk.util.PushyFirebase.register (PushyFirebase.java:12)
  at me.pushy.sdk.Pushy.register (Pushy.java:213)
  at me.pushy.sdk.cordova.internal.PushyPlugin.register (PushyPlugin.java:245)
  at me.pushy.sdk.cordova.internal.PushyPlugin.access$000 (PushyPlugin.java:27)
  at me.pushy.sdk.cordova.internal.PushyPlugin$1.run (PushyPlugin.java:53)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:784)
Caused by java.lang.ClassNotFoundException:
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:93)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)

注:以上为多次重复崩溃的核心堆栈信息,错误原因一致。

我已在网上查找相关解决方案,但未找到有效办法。以下是项目build.gradle中的依赖配置:

项目依赖配置

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
    implementation project(':capacitor-android')
    testImplementation "junit:junit:$junitVersion"
    androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
    androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
    implementation project(':capacitor-cordova-android-plugins')
    implementation 'com.google.android.gms:play-services-location:18.0.0'

    def appCenterSdkVersion = '4.3.1'
    implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
}

解决方案建议

1. 添加Firebase Messaging依赖

从堆栈信息可知,Pushy SDK的PushyFirebase类调用FirebaseMessaging时找不到该类,说明项目缺少Firebase Messaging依赖。在build.gradle中添加:

// 版本建议与Google Play服务版本兼容,可根据项目需求调整
implementation 'com.google.firebase:firebase-messaging:23.0.0'

同时确保项目根目录build.gradle已配置Google服务插件:

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

并在app模块build.gradle末尾添加:

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

2. 启用Multidex支持

Android 8+虽默认支持Multidex,但项目方法数过多时仍可能出现类找不到问题。在build.gradle中启用:

android {
    defaultConfig {
        multiDexEnabled true
    }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
}

同时修改Application类继承MultiDexApplication,或在attachBaseContext方法中调用MultiDex.install(this)。

3. 检查Pushy SDK版本兼容性

确认Pushy SDK版本与Firebase Messaging版本兼容,建议升级至最新Pushy SDK版本,避免版本冲突。

4. 清理重建项目

添加依赖后,执行Clean Project和Rebuild Project操作,确保依赖被正确引入。

内容的提问来源于stack exchange,提问作者JayP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:45:30