未从gcm获取设备注册id



在我的android应用程序中,我为此添加了通知服务,我遵循了这个链接
它给出了这个例外:

"android.content.pm.PackageManager$NameNotFoundException:"

我该如何解决这个问题?

manifest.xml
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
<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.example.gcm.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />
<application ...>
    <receiver
        android:name=".GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.example.gcm" />
        </intent-filter>
    </receiver>
    <service android:name=".GcmIntentService" />
</application>

错误日志

12-03 12:01:40.868:I/PackageManager(585):Packagecom.example.gcmcodePath已从/data/app/com.example.gcm-2.apk更改为/data/app/com.example.gcm-1.apk;保留数据并使用新的12-0312:01:40.878:W/ActivityManager(585):无法检索gids 12-0312:01:40.878:W/活动经理(585):geandroid.content.pm.PackageManager$NameNotFoundException:com.example.gcm 12-03 12:01:40.878:W/ActivityManager(585):在android.app.ApplicationPackageManager.getPackaGids(ApplicationPackageManager.java:143)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService.startProcessLocked(ActivityManagesService.java:2559)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService.startProcessLocked(ActivityManagesService.java:2526)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStack Supervisor.java:1066)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1633)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1221)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStack.finishCurrentActivityLocked(ActivityStack.java:2482)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2415)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStack.forceStopPackageLocked(ActivityStack.java:3360)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityStackSupervisor.forceStopPackageLocked(ActivityStack Supervisor.java:1953)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagesService.java:4507)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService.access$300(ActivityManagesService.java:203)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService$2.handleMessage(ActivityManagesService.java:1309)12-03 12:01:40.878:W/活动经理(585):在com.android.server.am.ActivityManagerService$AThread.run(ActivityManagesService.java:1848)

如果您的设备没有配置任何谷歌帐户,那么您将面临此问题。只需添加一个帐户即可。

另外,在你的清单中试试这个。

<!-- GCM connects to Internet Services. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Creates a custom permission so only this app can receive its messages. -->
<permission
    android:name="app.drugs.talksooner.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="app.drugs.talksooner.permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive data message. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Network State Permissions to detect Internet status -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Permission to vibrate -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

最新更新