【问题标题】:Onesignal not finding upgrade reciever class in apkOnesignal 在 apk 中找不到升级接收器类
【发布时间】:2017-11-02 05:33:13
【问题描述】:

所以我正在使用 Unity 5.6.1 和 Onesignal(来自该站点的最新 SDk)构建一个 Android 应用程序,当我构建 apk 时它崩溃了。看着 logcat 我看到了这条消息

原因:java.lang.ClassNotFoundException:在路径上找不到类“com.onesignal.UpgradeReceiver”:DexPathList[[zip 文件“/mnt/asec/com.MyPad3D.MazeWalkVR-2/base.apk” ],nativeLibraryDirectories=[/mnt/asec/com.MyPad3D.MazeWalkVR-2/lib/arm, /mnt/asec/com.MyPad3D.MazeWalkVR-2/base.apk!/lib/armeabi-v7a, /vendor/lib , /system/lib]]

我不明白现在该做什么以及如何进一步调试,任何帮助将不胜感激!

【问题讨论】:

  • 你在 Android 清单文件中定义了这个类吗?
  • 你使用什么编程语言?
  • @Rims 不,在文档中并没有说要在清单中做任何事情
  • Unity 中的@Hristo C# 脚本
  • 能否发布您修改或添加的所有相关代码。另外请看this线程,因为有类似的问题。

标签: android unity3d onesignal


【解决方案1】:

您必须在 Android 的 Manifest 文件中添加这一行。在其中一个应用程序中,我也实现了这个 One 信号。

<receiver android:name="com.onesignal.UpgradeReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>

除此之外,您还应该在 Android Manifest 文件中添加这一行。

   <meta-data
                android:name="onesignal_app_id"
                android:value="yyyyssyshsbchdsdavbavbfjvbkfdj" />
            <meta-data
                android:name="onesignal_google_project_number"
                android:value="xxxxxxxxx" />

            <receiver
                android:name="com.onesignal.GcmBroadcastReceiver"
                android:permission="com.google.android.c2dm.permission.SEND">
                <intent-filter>
                    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                    <category android:name="com.newsreader.sitl" />
                </intent-filter>
            </receiver>
            <receiver android:name="com.onesignal.NotificationOpenedReceiver" />

            <service android:name="com.onesignal.GcmIntentService" />
            <service
                android:name="com.onesignal.SyncService"
                android:stopWithTask="false" />

            <activity
                android:name="com.onesignal.PermissionsActivity"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />

            <service android:name="com.onesignal.NotificationRestoreService" />

            <receiver android:name="com.onesignal.BootUpReceiver">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                </intent-filter>
            </receiver

>
   <service
            android:name="com.newsreader.notificationHelper.NotificationExtender"
            android:exported="false">
            <intent-filter>
                <action android:name="com.onesignal.NotificationExtender" />
            </intent-filter>
        </service>
        <meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />

【讨论】:

  • MY_PACKAGE_REPLACED 这个东西,需要换成我游戏的包名吗?
  • No no..不需要替换。你是否在 build.gradle 中添加了 Onesignal compile 'com.onesignal:OneSignal:3.+@aar' in android。
  • 嗨@Rims,抱歉回复晚了,不,我没有。我不确定那是什么?我在哪里可以找到它?
  • 这在文档中没有提到,你确定它是强制性的吗? documentation.onesignal.com/docs
猜你喜欢
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多