【问题标题】:Java.Lang.NoClassDefFoundError when implementing firebase cloud messagingJava.Lang.NoClassDefFoundError 实现 firebase 云消息传递
【发布时间】:2020-12-20 15:14:35
【问题描述】:

我正在使用 Firebase Cloud Messaging 实现推送通知,为此我在我的 AndroidManifest.xml 文件中添加了此代码

<!--FCM RECEIVER-->
<receiver
  android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
  android:exported="false"/>
<receiver
  android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
  android:exported="true"
  android:permission="com.google.android.c2dm.permission.SEND">
  
  <intent-filter>
    <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
    <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
    <category android:name="${applicationId}"/>
  </intent-filter>    
</receiver>
<!---FCM RECEIVER ENDS HERE-->

但是当我尝试运行应用程序时,它甚至在启动活动之前就抛出了应用程序

Java.Lang.NoClassDefFoundError: 'Failed resolution of: Lcom/google/android/datatransport/runtime/dagger/internal/Factory;'

顺便说一句,我已经为此功能安装了两个 NuGet 包:

  1. Xamarin.GooglePlayServices.Base
  2. Xamarin.Firebase.Messaging

我试过了:

  1. 删除 bin 和 obj 文件夹并重新构建解决方案
  2. 将所有相同的家庭块包更新到相同的版本

【问题讨论】:

    标签: java c# xamarin.android firebase-cloud-messaging android-manifest


    【解决方案1】:

    安装 Xamarin.Google.Dagger 包为我解决了这个问题。

    【讨论】:

    • 您是如何发现这个错误与缺少包有关的?
    • 我希望Xamarin doc 中提到了这一点!
    • 这样一个简单的解决方案。我希望能像这样解决更多问题。
    • 确保将其安装到 android 项目中,而不是 xamarin 表单项目中。
    • 请更新答案以指定安装必须在 Android 项目上
    【解决方案2】:

    只需安装包 Xamarin.Google.Dagger。这应该够了吧。似乎它正在尝试寻找包裹但没有找到。

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 2016-11-05
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多