碰到一個(gè)奇怪的問題怀偷, app在其他的系統(tǒng)上都沒問題题造,唯獨(dú)在5.0的機(jī)器上域醇,一拍照就崩潰:
用Bugly捕獲的錯(cuò)誤信息是這樣的:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference
這里是因?yàn)樵? onActivityResult
的回調(diào)里使用了拍照之前設(shè)置的Uri變量導(dǎo)致的烂琴。
同時(shí)滚澜,注意到的還有用戶的訪問路徑是這樣的:
52017-11-06 16:40:35 com.maowujian.sale.activities.SaleActivity onCreated
62017-11-06 16:40:35 com.maowujian.sale.activities.SaleActivity onResumed
72017-11-06 16:40:39 com.maowujian.sale.activities.SaleActivity onPaused
82017-11-06 16:41:06 com.maowujian.sale.activities.SaleActivity onDestroyed
92017-11-06 16:41:06 com.maowujian.sale.activities.SaleActivity onCreated
很明顯粗仓,這里拍照之后Activity似乎自動(dòng)restart了。
這里找到兩處比較靠譜的解釋:
Android: Activity getting Destroyed after calling Camera Intent
【Android進(jìn)階】android:configChanges屬性總結(jié)
大體意思是橫豎屏切換和屏幕尺寸變化會(huì)重新調(diào)用Activity的所有生命周期方法设捐,解決方法是在AndroidManifest.xml中對(duì)應(yīng)的Activity上設(shè)置
android:configChanges="orientation|screenSize"
等屬性借浊。