2013-05-10 47 views
0

我已經開始在GCM通知 工作很多goggling後,我檢查了代碼,通過它我可以從GCM服務器獲得註冊ID,所以我用錯誤清單

super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
GCMRegistrar.checkDevice(this); 
GCMRegistrar.checkManifest(this); 

final String regId= GCMRegistrar.getRegistrationId(this); 

if (regId.equals("")) { 
    GCMRegistrar.register(this, "338056690461"); 
} 
else{ 
    Log.v(TAG, "Already registered"); 
} 

    But When i run My Application i get error on `CheckMAnifest()` 

這意味着我有錯誤在我的清單,但accordint我,我的清單是正確的,請有alook我的異常,以及清單

例外它給

java.lang.IllegalStateException: Application does not define permission PushNotification.Pop.permission.C2D_MESSAGE 

和明顯我用的是

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="PushNotification.Pop" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="8" /> 

    <permission 
     android:name="PushNotification.Pop.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="PushNotification.Pop.permission.C2D_MESSAGE" /> 

    <!-- App receives GCM messages. --> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <!-- GCM connects to Google 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" /> 

    <application android:debuggable="true" android:label="@string/app_name" > 
     <activity 
      android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <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="PushNotification.Pop" /> 
      </intent-filter> 
     </receiver> 

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

</manifest> 

請建議我在哪裏,我錯了你的幫助將是greatfull 感謝提前:)

+0

,我使用谷歌API – UnderGround 2013-05-10 06:47:21

+0

我使用三星Galaxy流行的OS(2.2.1)@Bhupendrasinh 你在該設備上配置的谷歌帳戶? – 2013-05-10 06:51:48

+0

一個問題,其仿真器使用的是谷歌的平均API或簡單 – UnderGround 2013-05-10 06:56:34

回答

0

嘗試複製並粘貼此

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="PushNotification.Pop" 
     android:versionCode="1" 
     android:versionName="1.0"> 

    <uses-sdk android:minSdkVersion="8" 
       android:targetSdkVersion="17"/> 


    <!-- GCM connects to Internet Services. --> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" /> 
    <uses-permission android:name="android.permission.CALL_PHONE"/> 
    <uses-permission android:name="android.permission.VIBRATE" /> 


    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

    <uses-permission android:name="PushNotification.Pop.permission.C2D_MESSAGE" /> 

    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 


    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 


    <permission 
     android:name="indieswebs.magento.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <application android:icon="@drawable/ic_launcher" 
       android:label="@string/app_name" 
       > 

     <activity android:name="PushNotification.Pop.MainActivity" 
        android:label="@string/app_name_title" 
        android:clearTaskOnLaunch="true" 
        android:configChanges="keyboardHidden|orientation"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 




    <receiver 
      android:name="com.google.android.gcm.GCMBroadcastReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 

       <!-- Receives the actual messages. --> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <!-- Receives the registration id. --> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

       <category android:name="PushNotification.Pop" /> 
      </intent-filter> 
     </receiver> 

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

    </application> 
</manifest> 

或 我得到了這個問題的答案。只需刪除「gen」文件夾即可。它自動構建。應用程序將正常工作。

+0

這是給同樣的問題 – 2013-05-10 07:18:52

+0

我不知道什麼的proble,它是所有正確的很難找到錯誤@bhupendra – 2013-05-10 07:21:34

+0

是!但我認爲問題出在您的活動或您的軟件包名稱上檢查 – UnderGround 2013-05-10 07:23:52