在我的Android应用程序中,我为此添加了通知服务,我跟着this link 它给出了这个例外:
“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):打包com.example.gcm codePath已从/data/app/com.example.gcm-2.apk更改为 /data/app/com.example.gcm-1.apk;保留数据并使用新的12-03 12:01:40.878:W / ActivityManager(585):无法检索gids 12-03 12:01:40.878:W / ActivityManager(585): geandroid.content.pm.PackageManager $的NameNotFoundException: com.example.gcm 12-03 12:01:40.878:W / ActivityManager(585):at android.app.ApplicationPackageManager.getPackaGids(ApplicationPackageManager.java:143) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService.startProcessLocked(ActivityManagerService.java:2559) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService.startProcessLocked(ActivityManagerService.java:2526) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1066) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1633) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1221) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStack.finishCurrentActivityLocked(ActivityStack.java:2482) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2415) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStack.forceStopPackageLocked(ActivityStack.java:3360) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityStackSupervisor.forceStopPackageLocked(ActivityStackSupervisor.java:1953) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4507) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService.access $ 300(ActivityManagerService.java:203) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService $ 2.handleMessage(ActivityManagerService.java:1309) 12-03 12:01:40.878:W / ActivityManager(585):at com.android.server.am.ActivityManagerService $ AThread.run(ActivityManagerService.java:1848)
答案 0 :(得分:1)
如果您的设备未配置任何Google帐户,则您将遇到此问题。 只需添加一个帐户即可。
另外,请在清单中试试。
<!-- 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" />