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

更新库后华为App启动崩溃求助(含日志及配置信息)

华为App更新依赖后启动崩溃排查求助

更新部分依赖库后,华为渠道App出现启动崩溃问题:闪屏显示1秒后应用停止运行。目前已将agconnect更新至最新版本1.9.1.303,Gradle版本为8.6.0。

崩溃日志

java.lang.NoClassDefFoundError: Failed resolution of: Lro/datakit/util/EventBus;
    at ro.base.architecture.activity.BaseActivity.Y2(SourceFile:8)
    at ro.base.architecture.activity.BaseActivity.A2(SourceFile:27)
    at ro.base.architecture.activity.BaseActivity.onCreate(SourceFile:4)
    at ro.ui.auth.login.activity.LoginActivity.onCreate(SourceFile:1)
    at android.app.Activity.performCreate(Activity.java:8086)
    at android.app.Activity.performCreate(Activity.java:8074)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3755)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3961)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8178)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: java.lang.ClassNotFoundException: ro.datakit.util.EventBus
    ... 19 more

主项目依赖配置

googleImplementation 'com.huawei.hms:location:6.7.0.300'
googleImplementation 'com.huawei.hms:maps:6.6.1.301'

// huawei libs
huaweiImplementation 'com.huawei.agconnect:agconnect-core:1.9.1.303'
huaweiImplementation 'com.huawei.hms:base:6.2.0.300'
huaweiImplementation 'com.huawei.hms:hwid:6.12.0.300'
huaweiImplementation 'com.huawei.hms:push:6.12.0.300'
huaweiImplementation 'com.huawei.hms:hianalytics:6.7.0.300'
huaweiImplementation 'com.huawei.agconnect:agconnect-crash:1.9.1.303'
huaweiImplementation 'com.huawei.hms:location:6.7.0.300'
huaweiImplementation 'com.huawei.hms:maps:6.11.0.304'
huaweiImplementation 'dev.supasintatiyanupanwong.libraries.android.huawei.maps:maps-utils:1.0.0-alpha03'

allprojects {
    buildscript {
        ext.kotlin_version = '1.8.0'
        repositories {
            google()
            mavenLocal()
            mavenCentral()
            maven { url 'https://jitpack.io' }
            maven { url 'https://developer.huawei.com/repo/' }
        }

        dependencies {
            classpath 'com.android.tools.build:gradle:8.6.0'
            classpath "io.realm:realm-gradle-plugin:10.18.0"
            classpath 'com.google.gms:google-services:4.4.2'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

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

            classpath 'com.huawei.agconnect:agcp:1.9.1.303'
            classpath 'com.huawei.hms.plugin:analytics:5.0.1.300'
        }
    }
}

EventBus类代码

package ro.datakit.util

import androidx.lifecycle.MutableLiveData
import ro.datakit.rest.response.auth.AuthorizeResponse

object EventBus {
    val BUS = MutableLiveData<AuthorizeResponse>()

    val LOGOUT_BUS = MutableLiveData<Boolean>()
}

datakit模块build.gradle配置

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-parcelize'
apply plugin: 'realm-android'

android {
    compileSdk 34

    publishNonDefault true

    defaultConfig {
        minSdkVersion 23
        buildConfigField "boolean", "SHOW_CAN_NETWORK_CONSOLE", "false"
    }

    flavorDimensions "default", "services"

    productFlavors {
        live {
            dimension "default"
        }
        stage {
            dimension "default"
            buildConfigField "boolean", "SHOW_CAN_NETWORK_CONSOLE", "true"
        }
        dev {
            dimension "default"
        }
        preprod {
            dimension "default"
            buildConfigField "boolean", "SHOW_CAN_NETWORK_CONSOLE", "true"
        }
        google {
            dimension "services"

        }
        huawei {
            dimension "services"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFile 'proguard-project.pro'
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
        debug {

        }
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }
    lint {
        abortOnError false
        ignoreWarnings true
        quiet true
    }
    namespace 'ro.datakit'
}

dependencies {
    // kotlin
    api 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.5'

    api project(':basic')
}

realm {
    syncEnabled = false
}

repositories {
    mavenCentral()
}

排查建议

  • 检查渠道依赖匹配::datakit模块包含google和huawei两个product flavor,主项目需确保依赖的是该模块的huawei flavor。可在主项目依赖中指定配置,例如huaweiImplementation project(path: ':datakit', configuration: 'huaweiDebug')(根据buildType调整),或在主项目中配置与:datakit一致的flavor维度,确保编译时拉取对应渠道的模块产物。
  • 验证ProGuard规则:即使release版本minifyEnabled设为false,主项目或其他模块的ProGuard规则可能误移除ro.datakit.util.EventBus类。可在主项目ProGuard文件中添加规则:-keep class ro.datakit.util.EventBus { *; },重新打包测试。
  • 清理编译缓存:执行./gradlew clean清理本地编译缓存,重新构建项目,避免旧产物导致类加载异常。
  • 统一Kotlin版本:确认主项目与:datakit模块使用的Kotlin版本一致(均为1.8.0),版本差异可能导致字节码不兼容。
  • 检查flavor维度配置:主项目需定义与:datakit一致的flavor维度(default和services),否则无法匹配对应渠道的模块代码,导致类缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:34:55