先簡單介紹下5.0版的變化。5.0最大的特色是調用簡單,采用了鍊式文法,形如:
其次,API更加靈活,支援分享按鈕的點選回調;
最後,采用了最新的sdk(新浪微網誌原生體驗更好、支援易信)。
但是有一個很大的問題,那就是當分享代碼不在預設的程序(以下稱main程序)裡時,回調會報空指針異常。
比如在AndroidManifest.xml新開了一個程序用來打開h5頁面,點了微信分享,然後點取消,從微信傳回APP的時候就報空指針異常崩潰了(别和我說你不知道新開程序的好處和意義,看我微信朋友圈1月4日分享的《微信用戶端架構演進之路》吧)。AndroidManifest.xml的配置如下,關鍵是紅色代碼部分新開了一個叫tools的程序:
崩潰日志如下:


根據上面的日志,空指針異常的原因是UMWXHandler.java的回調umShareListener為null(如下圖,至于為什麼是null,因為sdk不是我們寫的,無法從sdk層面去解決故沒有去深究,但我們要從應用層面去解決問題):
想起我們工程裡有一個叫WXEntryActivity.java的繼承了它,既然是onCreate報的異常,那可以try catch捕捉這個異常以防止崩潰。說幹就幹,代碼如下:


由此跨程序調用分享取消時崩潰的問題解決了。
同理微網誌的那個WBShareActivity.java也類似處理了吧。
本文轉自Kai的世界,道法自然部落格園部落格,原文連結:http://www.cnblogs.com/kaima/p/5135100.html,如需轉載請自行聯系原作者。