Xamarin应用启动崩溃,报错Failed resolution of: Lcom/google/android/datatransport/runtime/dagger/internal/Factory;
错误根因
你遇到的java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/datatransport/runtime/dagger/internal/Factory;错误,本质是Xamarin.Android项目中Firebase相关依赖的版本不兼容,或者代码裁剪阶段误删了必要的运行时类。
修复步骤
- 首先统一所有Firebase相关Nuget包的版本,确保
Xamarin.Firebase.Messaging、Xamarin.Firebase.Common等包的主版本号完全一致,禁止混用不同大版本的Firebase组件。 - 显式在Android项目中安装和Firebase版本匹配的
Xamarin.Google.Android.DataTransport.RuntimeNuget包,补全缺失的依赖项。 - 如果项目开启了R8/ProGuard代码缩减,在你的
proguard.cfg配置文件中添加如下规则,避免相关类被误裁剪:
-keep class com.google.android.datatransport.** { *; } -keep class dagger.internal.** { *; }
- 最后删除项目根目录下的
bin、obj缓存文件夹,清理解决方案后重新编译即可。
内容的提问来源于stack exchange,提问作者Amin Keshavarzian
相关产品推荐
相关产品推荐

