2013-02-01 227 views
0
02-01 14:16:32.054: E/AndroidRuntime(17134): FATAL EXCEPTION: pool-2-thread-2 
02-01 14:16:32.054: E/AndroidRuntime(17134): java.lang.NullPointerException 
02-01 14:16:32.054: E/AndroidRuntime(17134): at org.apache.cordova.NativeToJsMessageQueue.addPluginResult(NativeToJsMessageQueue.java:233) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at org.apache.cordova.CordovaWebView.sendPluginResult(CordovaWebView.java:548) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at org.apache.cordova.api.Plugin.sendPluginResult(Plugin.java:110) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at org.apache.cordova.api.Plugin$1.run(Plugin.java:82) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
02-01 14:16:32.054: E/AndroidRuntime(17134): at java.lang.Thread.run(Thread.java:856) 

我不斷收到該錯誤。這是在應用程序第一次打開並在Google Cloud Messaging中註冊設備之後發生的。一切看起來都很順利,但我暫停應用程序,然後一旦它恢復,它會出於某種原因調用取消註冊功能,然後立即崩潰,但之後會繼續使用Google Cloud Messaging重新註冊設備,所以一旦我重新進入應用程序如果它不強迫關閉,它應該處於確切的狀態。然後,如果我在此之後暫停並恢復應用程序,則不會再強制關閉。PhoneGap Google Cloud Messaging Android問題

有沒有人有任何這方面的經驗或任何想法是什麼造成這種情況?

我實現了GCM PhoneGap的插件與https://github.com/marknutter/GCM-Cordova

回答

1

我不知道爲什麼你的代碼調用時,你的應用程序恢復註銷。

但我可以解決NullPointerException異常時,發生這種情況:

我調試的GCM插件代碼,並發現GCMPlugin.java文件有不當之處,在管線75

的的if/else進行註銷聲明沒有提供PluginResult!因此,我添加了以下額外行,並且NullPointerException消失:

else if (UNREGISTER.equals(action)) { 
    GCMRegistrar.unregister(this.ctx.getContext()); 
    Log.v(ME + ":" + UNREGISTER, "GCMRegistrar.unregister called "); 

    result = new PluginResult(Status.OK); //added line 

}