【问题标题】:OneSignal Notifications not appearing in Xamarin Forms Android - Release ModeOneSignal 通知未出现在 Xamarin Forms Android - 发布模式中
【发布时间】:2021-04-24 09:45:51
【问题描述】:

我正在使用 OneSignal SDK 通过 Xamarin 表单发送通知 - 当我在调试模式下运行应用程序时,通知会到达设备上。

但是,在发布模式下编译和运行时,设备上不会出现任何通知(Android One)。

我怀疑某些东西可能被剥离(由编译器/链接器?) - 但我不确定如何解决这个问题。

应用程序在发布模式下运行,但在某些情况下似乎崩溃并且日志显示以下内容:

java.lang.ClassNotFoundException: Didn't find class "com.onesignal.GcmBroadcastReceiver" on path: DexPathList.......



androidx.core.app.CoreComponentFactory.instantiateReceiver
java.lang.InstantiationException: java.lang.Class<com.google.firebase.iid.FirebaseInstanceIdReceiver> cannot be instantiated


androidx.core.app.CoreComponentFactory.instantiateService
java.lang.InstantiationException: java.lang.Class<com.onesignal.RestoreKickoffJobService> cannot be instantiated

【问题讨论】:

    标签: firebase xamarin xamarin.forms android-notifications onesignal


    【解决方案1】:

    这种类型的消息是由 ProGuard / R8 引起的。您可以禁用它,也可以将特定规则添加到 Proguard.cfg 文件以防止代码被剥离。

    【讨论】:

    • @Steve 预计会通过投票表示感谢。就网站而言,强烈建议不要说文学性的感谢。
    【解决方案2】:

    对于可能遇到相同问题的其他人,这是为我解决的问题:

    1. 在 Android 项目 proguard.cfg 中创建一个空文件。将构建操作设置为 ProguardConfiguration

    2. 添加以下内容

    -keep class com.onesignal.** { *; }
    -keep class com.google.firebase.** { *; }
    

    重新构建和重新部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2017-02-22
      相关资源
      最近更新 更多