未找到Receiver包,取消注册应用程序

时间:2013-11-24 19:40:10

标签: android android-intent google-cloud-messaging

我是Android的新手,并尝试使用Google Cloud Messaging实施一些应用程序。我最初设置了一个应用程序,现在已将我的应用程序拆分为两个(服务器和客户端)。

我的GCM意图正在运行,但是当我拆分我的应用程序时,我将包分开了。我的旧应用程序是<base.package>,现在这两个应用程序是<base.package>.client<base.package>.server

现在,在我的客户端应用程序(接收广播)上,在我的日志文件中,我看到:

11-24 11:24:47.978: W/GCM/DMM(14909): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=<base.package> (has extras) }

11-24 11:24:47.978: W/GCM/DMM(14909): Receiver package not found, unregister application <base.package> sender <project.id>

我的清单如下:

<!-- Needed for the GCM messaging service -->
<permission
    android:name="<base.package>.client.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="<base.package>.client.permission.C2D_MESSAGE" />


        <!-- Needed to receive GCM broadcasts -->
    <receiver
        android:name="com.google.android.gcm.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="<base.package>.client" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMIntentService" >
    </service>

所以看起来发生了什么,我的<base.package>旧应用程序是不允许我的<base.package>.client新应用程序注册?这是在Google服务器端还是在我的Eclipse项目中?我该如何清除它?

我有一种感觉,我可以创建一个新的Google控制台项目项目,并从头开始使用新的项目ID,但我想我不会那样学习: - )

2 个答案:

答案 0 :(得分:0)

顺便说一下,你可以从头开始,但这不是必要的,好像只是用.client包名创建一个新的控制台项目,并使用该项目ID,这将完成工作......

答案 1 :(得分:0)

您在问题中仅包含部分相关清单声明。在清单顶部附近,您应该拥有包含<permission>的{​​{1}}和<uses-permission>声明。您应该将它们更改为<base.package>.permission