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

升级Google API库后三星设备出现GRPC类解析失败崩溃问题

升级Google依赖库后三星设备启动崩溃:NoClassDefFoundError: Lio/grpc/InternalGlobalInterceptors

升级以下任意Google依赖库到指定版本后,应用启动触发崩溃,报错:NoClassDefFoundError: Failed resolution of: Lio/grpc/InternalGlobalInterceptors。应用并未直接使用GRPC,且已手动集成GRPC库但问题仍存在,仅在三星设备上出现。

涉及的依赖库

Implementation 'com.google.http-client:google-http-client-gson:1.44.2'
Implementation 'com.google.api-client:google-api-client-android:2.6.0'
Implementation 'com.google.auth:google-auth-library-oauth2-http:1.24.0'
Implementation 'com.google.api-client:google-api-client:2.6.0'
Implementation 'com.google.apis:google-api-services-drive:v3-rev20220815-2.0.0'

崩溃日志

Fatal Exception: io.reactivex.exceptions.UndeliverableException: java.lang.NoClassDefFoundError: Failed resolution of: Lio/grpc/InternalGlobalInterceptors;
   at io.reactivex.exceptions.UndeliverableException.<init>(UndeliverableException.java:34)
   at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
   at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
   at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
   at java.util.concurrent.FutureTask.run(FutureTask.java:264)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
   at java.lang.Thread.run(Thread.java:1012)

解决方案

  • 统一GRPC依赖版本:这些Google依赖库可能依赖特定版本的GRPC,手动集成的版本可能不匹配。在build.gradle中强制指定兼容的GRPC版本:
    configurations.all {
        resolutionStrategy.force 'io.grpc:grpc-core:1.59.0'
        resolutionStrategy.force 'io.grpc:grpc-android:1.59.0'
    }
    
  • 添加ProGuard/R8规则:三星设备的系统优化可能误删GRPC类,确保保留相关类:
    -keep class io.grpc.** { *; }
    -keepattributes *Annotation*
    -dontwarn io.grpc.**
    
  • 排查依赖冲突:执行./gradlew app:dependencies查看依赖树,排除冲突的旧版本GRPC依赖。
  • 三星设备特殊配置:部分三星机型ART虚拟机有类加载限制,在build.gradle的android块中添加:
    android {
        packagingOptions {
            pickFirst 'META-INF/*'
        }
    }
    

内容的提问来源于Stack Exchange,提问作者GGK stands for Ukraine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:12:35