2014-10-04 29 views
3

正如其推送通知快速入門指南中所述,我做了所有事情。但每當我嘗試發送測試推送時,應用程序都會崩潰。我已經完成了所有可能的在線幫助資源,但除執行外,一切似乎都正確。使用解析測試推送通知的應用程序崩潰

我main-> Application.java

套餐 - > com.virus.buzzkill;

public class BuzzKillApplication extends Application { 

    @Override 
    public void onCreate() { 
      super.onCreate(); 
      Parse.initialize(this, "YhcMXhTCr65bWiI2RB4voL", "R7QWGNPMjIPh1CHTxZRXxuzgu"); 
      ParseInstallation.getCurrentInstallation().saveInBackground(); 

     } 
} 

我的AndroidManifest.xml

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

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

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 


    <uses-feature 
     android:name="android.hardware.camera" 
     android:required="true" /> 



    <permission 
     android:name="com.virus.buzzkill.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.virus.buzzkill.permission.C2D_MESSAGE" /> 

    <application 
     android:name=".BuzzKillApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".LoginActivity" 
      android:label="@string/title_activity_login" 
      android:screenOrientation="portrait" > 
     </activity> 
     <activity 
      android:name=".SignUpActivity" 
      android:label="@string/title_activity_sign_up" 
      android:parentActivityName="com.virus..buzzkill.LoginActivity" 
      android:screenOrientation="portrait" > 
     </activity> 
     <activity 
      android:name=".EditFriendsActivity" 
      android:label="@string/title_activity_edit_friends" 
      android:parentActivityName=".MainActivity" 
      android:screenOrientation="portrait" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.virus.buzzkill.MainActivity" /> 
     </activity> 
     <activity 
      android:name=".RecipientsActivity" 
      android:label="@string/title_activity_recipients" 
      android:parentActivityName=".MainActivity" 
      android:screenOrientation="portrait" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.virus.buzzkill.MainActivity" /> 
     </activity> 
     <activity 
      android:name=".ViewImageActivity" 
      android:label="@string/title_activity_view_image" 
      android:parentActivityName=".MainActivity" 
      android:screenOrientation="portrait" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.virus.buzzkill.MainActivity" /> 
     </activity> 

     <service android:name="com.parse.PushService" /> 

     <receiver android:name="com.parse.ParseBroadcastReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
      </intent-filter> 
     </receiver> 
     <receiver 
      android:name="com.parse.ParsePushBroadcastReceiver" 
      android:exported="false" > 
      <intent-filter> 
       <action android:name="com.parse.push.intent.RECEIVE" /> 
       <action android:name="com.parse.push.intent.DELETE" /> 
       <action android:name="com.parse.push.intent.OPEN" /> 
      </intent-filter> 
     </receiver> 
     <receiver 
      android:name="com.parse.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.virus.buzzkill" /> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

的logcat的細節

10-04 20:02:08.544: W/ActivityThread(16322): Application com.virus.buzzkill can be debugged on port 8100... 
    10-04 20:02:08.860: I/Adreno-EGL(16322): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018_msm8226_LNX.LA.3.5.1_RB1__release_AU() 
    10-04 20:02:08.860: I/Adreno-EGL(16322): OpenGL ES Shader Compiler Version: E031.24.00.08 
    10-04 20:02:08.860: I/Adreno-EGL(16322): Build Date: 03/07/14 Fri 
    10-04 20:02:08.860: I/Adreno-EGL(16322): Local Branch: 
    10-04 20:02:08.860: I/Adreno-EGL(16322): Remote Branch: quic/LNX.LA.3.5.1_RB1.1 
    10-04 20:02:08.860: I/Adreno-EGL(16322): Local Patches: NONE 
    10-04 20:02:08.860: I/Adreno-EGL(16322): Reconstruct Branch: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018 + f2fd134 + NOTHING 
    10-04 20:02:08.911: D/OpenGLRenderer(16322): Enabling debug mode 0 
    10-04 20:02:08.991: D/dalvikvm(16322): GC_FOR_ALLOC freed 480K, 46% free 9407K/17184K, paused 16ms, total 16ms 
    10-04 20:02:09.025: I/dalvikvm-heap(16322): Grow heap (frag case) to 23.393MB for 12767920-byte allocation 
    10-04 20:02:34.759: I/Activity(16322): Pritish 
    10-04 20:02:36.055: D/dalvikvm(16322): GC_FOR_ALLOC freed 1629K, 25% free 22282K/29656K, paused 21ms, total 21ms 
    10-04 20:02:50.597: D/AndroidRuntime(16322): Shutting down VM 
    10-04 20:02:50.597: W/dalvikvm(16322): threadid=1: thread exiting with uncaught exception (group=0x4169cd40) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): FATAL EXCEPTION: main 
    10-04 20:02:50.600: E/AndroidRuntime(16322): Process: com.virus.buzzkill, PID: 16322 
    10-04 20:02:50.600: E/AndroidRuntime(16322): java.lang.RuntimeException: Unable to start receiver com.parse.ParsePushBroadcastReceiver: java.lang.NullPointerException 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2441) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.app.ActivityThread.access$1700(ActivityThread.java:139) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1286) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.os.Handler.dispatchMessage(Handler.java:102) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.os.Looper.loop(Looper.java:136) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.app.ActivityThread.main(ActivityThread.java:5086) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at java.lang.reflect.Method.invokeNative(Native Method) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at java.lang.reflect.Method.invoke(Method.java:515) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at dalvik.system.NativeStart.main(Native Method) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): Caused by: java.lang.NullPointerException 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.parse.ParsePushBroadcastReceiver.getSmallIconId(ParsePushBroadcastReceiver.java:253) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.parse.ParsePushBroadcastReceiver.getNotification(ParsePushBroadcastReceiver.java:335) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.parse.ParsePushBroadcastReceiver.onPushReceive(ParsePushBroadcastReceiver.java:143) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at com.parse.ParsePushBroadcastReceiver.onReceive(ParsePushBroadcastReceiver.java:104) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2434) 
    10-04 20:02:50.600: E/AndroidRuntime(16322): ... 10 more 

解析通知的錯誤是在日誌的最後一個項目。 請幫助。

永遠是一個新手。

回答

0

解析和推送通知有一些奇怪的地方,我一直在試着讓它按照它應該的方式正常工作(解析文檔表明它可以像你一樣操作,你可以通過擴展ParsePushBroadcastReceiver來自定義推送通知),但最終這樣做是爲了讓它工作。

看看這個答案

https://stackoverflow.com/a/26180181/951448

你需要做什麼:

  • 擴展ParsePushBroadcastReceiver類
  • 使用自定義類接收廣播(manifest.xml文件中)
  • 重寫onPushOpen以手動打開您的活動(或處理通知的打開操作你想要的方式)。
2

以下行結束</application>標記之前添加到您立即AndroidManifest.xml文件:

<meta-data android:name="com.parse.push.notification_icon" 
       android:resource="@drawable/push_icon"/> 

其中push_icon是你的包可繪製資源的名稱。

+0

他們在文檔中指定,設置圖標是可選的https://parse.com/tutorials/android-push-notifications – 2014-11-19 05:02:44

0

嘗試把此行的應用程序類:

PushService.setDefaultPushCallback(這一點,YourAttivity.class);

該行應放在Parse.Initialize()語句之後。

試着讓我知道。

相關問題