AndroidDev 板


LINE

※ [本文轉錄自 Android 看板 #1GM9LQSS ] 作者: roden (Roden) 看板: Android 標題: [開發] 在不同版本的androidAPP相同性問題 時間: Tue Sep 18 23:38:00 2012 Hi 板上的各位好。 想請問一下, 小弟寫了一個Android的app, 功能是介面上有個按鈕, 按鈕被按下後,會startActivityForResult 執行zxing(Google的barcode reader)掃瞄條碼, 掃描後,我的app裡撰寫了onActivityResult去接收和處理掃描到的檔案。 此APP在Desire(A8181) Android v2.2.2上執行良好。 不曾發生過錯誤, 但如果安裝到 Android 2.3 或 4.0.4版本的手機上。 就發生錯誤。 這錯誤發生時機是: 每當ZXING掃描完條碼後, 回到APP的視窗,就跑出APP強制關閉的畫面。 錯誤是: java.lang.RuntimeException: Unable to resume activity 版本差異導致此問題? 因為本人有將class裡的member變數印出來。 在呼叫startActivity之前,member變數是有資料。 但是在onActivityResult時,卻memeber變數變成null。 是否Activity被destory? 這問題困擾小弟許久,起初還以為是手機是雜牌的問題。 可以請問板上各位先進,小弟哪邊需要做改進才能讓APP相容於較新的版本? 資訊若不足,再請告知我一下。 以下是將按鈕加上Listener的片段及startActivityForResult的方法, 已去除不相關的程式碼。 希望能有先進提供解決的方法或一起討論。 謝謝各位 以下為程式碼。 http://pastebin.com/6HfZQUx8 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.65.41.232
1F:→ bestpika:左轉 AndroidDev 09/18 23:42



※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: roden (106.65.41.232), 時間: 09/18/2012 23:48:54
2F:→ cooper6334:需要的資訊是Crash時LogCat噴的訊息阿 09/19 08:15
3F:→ roden:小弟不才 問題已經解決 稍晚將問題點提供出來 個人錯誤 09/19 09:45
4F:→ roden:本以為問題已經解決,但還是相同問題。是否有先進可協助? 09/19 12:20
5F:推 cooper6334:LogCat裡通常會有一行Caused by:xxxExcaption 09/19 18:56
6F:→ cooper6334:下面是發生的位置,這個才是判斷的重點 09/19 18:56
7F:→ Eior:猜是gc把某個物件清掉了 從這個方向找吧 09/19 22:46
8F:推 sdyy:你的CURRENTWEBPAGE是幾時賦值阿? 09/19 23:50
CURRENTPAGE是在網頁換頁後馬上賦值。現在發現是parent Activity整個被gc,因為在onActivityResult呼叫前有執行 onCreate。這應該是ram不夠導致。但就算是把變數存到SharePreference 裡,也許能保存下來。 但是layout中的webview就算recreate後, 他本身的session id 也會有差異。 因為我在舊的Webview中已經有登入的record, 這樣我將掃描到的資訊送到網站後, 他會在要求我在登入一次。 有先進有遇過這問題嘛? 希望能夠強制把parent activity給保留下來。 或者能提供一些solution給我呢? -------------------------------------------- 2012/09/22 Solved 問題已經解決了。 原本我APP是去呼叫外部的ZXING, 也就是說是我沒將ZXING包在自己的APP。 雖然ZXING包不包在自己的APP裡, 在使用startActivityForResult都能呼叫成功。 但對於作業系統有一個很大的差異。 在沒將ZXING(外部程式)包進APP(Parent APP)的狀況下, 由於作業系統會認為你的APP(Parent APP)是去呼叫外部程式, 於是,當APP運行在手機規格差的環境上, 在記憶體不足的狀況下, OS會將其他的Activity(包含Parent APP)GC掉。 等到ZXING(外部程式)運行完畢, 再執行parent APP 的 onActivityResult時, 由於OS知道parent APP不存在, 故會去呼叫onCreate將parent APP建立起來, 這樣的話,原本的global variable也會化為初始值。 進而導致可能有一些exception發生。 若將ZXING(外部程式)包在APP裡, 在記憶體不足的環境下, 作業系統會認為我的APP(Parent APP)和ZXING(外部程式)是同一個程式, 它會優先將其他的ActivityGC掉, 但GC完後,記憶體仍然不足, 作業系統仍將會跳出整個APP。 這樣就只能請使用者換手機拉。 若有其他先進有不同的看法或意見,也歡迎一起討論! ※ 編輯: roden 來自: 39.8.11.82 (09/22 23:57)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP