我已经阅读了关于SNS的亚马逊自述文件,它是git repo。亚马逊SNS Unity - 找不到GCMBroadcastReceiver
注册工作正常,移动设备创建一个端点。使用阿尔恩端点处发布消息的电话显示的应用程序崩溃的消息,下面的堆栈跟踪:
03-01 19:53:34.781 17484 17484 E AndroidRuntime:java.lang.RuntimeException: Unable to instantiate receiver com.company.appname.GCMBroadcastReceiver: java.lang.ClassNotFoundException: Didn't find class "com.company.animamobile.GCMBroadcastReceiver" on path: DexPathList[[zip file "/data/app/com.company.appname-2/base.apk"],nativeLibraryDirectories=[/data/app/com.company.appname-2/lib/arm, /data/app/com.company.appname-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
资产/插件/ Android的包含所有相关的.jar文件和我检查了亚马逊的jar文件,如果它包含班级使用jar tf
cmd。它做了什么。
我的AndroidManifest.xml是这样的:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.appname"
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.amazonaws.unity.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.amazonaws.unity.permission.C2D_MESSAGE" />
<application
android:theme="@android:style/Theme.NoTitleBar"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:debuggable="true">
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
<receiver
android:name="com.company.appname.GCMBroadcastReceiver"
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="com.company.appname" />
</intent-filter>
</receiver>
<service android:name="com.company.appname.GCMIntentService" />
</application>
</manifest>
[编辑]张贴之前,我决定进一步检查SO。找到了一个帖子,建议添加google GCM.jar。我在AndroidManifest中做了哪些引用。应用犯规崩溃,所以我现在必须看看logcat中,得到了以下几点:
03-01 20:09:31.911 3582 3637 V BroadcastQueue: [background] Process cur broadcast BroadcastRecord{be5a3b5 u0 com.google.android.c2dm.intent.RECEIVE qIdx=4}, state= (APP_RECEIVE) DELIVERED for app ProcessRecord{d9ba83e 20867:com.company.appname/u0a253}
03-01 20:09:31.921 20867 20867 V GCMBroadcastReceiver: onReceive: com.google.android.c2dm.intent.RECEIVE
03-01 20:09:31.921 20867 20867 V GCMBroadcastReceiver: GCM IntentService class: com.company.appname.GCMIntentService
03-01 20:09:31.921 20867 20867 V GCMBaseIntentService: Acquiring wakelock
03-01 20:09:31.921 3582 5879 W ActivityManager: Unable to start service Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10 pkg=com.company.appname cmp=com.company.appname/com.activate.gcm.GCMIntentService bqHint=4 (has extras) } U=0: not found
您正在构建应用程序时使用哪种Google Play服务?也不要使用已被弃用且不再支持的GCM.jar,我甚至不会认为你会得到推送通知 – tyczj
现在抱怨GCMIntentService正在丢失,如果我使用gcm.jar。我有点困惑,为什么它看不到亚马逊罐子里的课程。他们在那里。我如何检查谷歌播放服务版本? –
在Android Studio中查看你的gradle文件,我试图去的是GCMIntentService在谷歌播放服务的更新中删除(我不记得是什么版本),如果Amazons SNS没有更新,你需要将该版本作为目标有它 – tyczj