2016/01/23

[Android 除錯] 展開所有應用程式就會出現已停止問題解法!





話說Android與電腦一樣都會有事件檢視器可以了解問題點

只是內建的很爛,找個好用的比較能快速找答案

這篇除了提供給碰到開應用程式app時會出現設定已停止之外的問題





也可以應用在其他出問題時,將Log提供給網友幫忙除錯

因為有時候問一個類似問題,答案可以有好幾十種可能性...

而打開應用程式就當掉這個問題在這個月中也有到Mobile01發問

不過當然不會有解答

因為只有提問題點

沒有附上Log

網址在這:http://www.mobile01.com/topicdetail.php?f=569&t=4678659





就在今天花了一些時間去解決

不需要重刷、也不需要解決安裝什麼app之類的

先從Log研究開始



關於查看Log的相關app在Google Play都找的到

這邊我就直接推CatLog

安裝後打開它就會瘋狂地跑即時Log








操作方式非常簡單就是先開Catlog

然後馬上透過多工鍵馬上切換到有問題的app

再馬上切回來Catlog

只要出現xxx已停止

就立馬按一下Catlog上方的暫停鍵

接下來就開始找可能的Log

不過用手機看很不方便

建議可以傳到電腦去看



像是我這次碰到的問題,從Log來看(按一下下面圖片可以有大張可以看)

圖片上面的Log表示正在呼叫需要記憶體

但卻超過了196120K的限制

換算了一下約192M

以我拿3G ram的手機來說

一般人一定會想怎可能不夠用!

對~我的閒置記憶體平均都有1G以上可用








所以這時候就要來找原因

關於Android記憶體的控制

除了原本手機硬體的大小外

還有手機軟體本身的限制

透過ES檔案管理器、Root Explorer等去開啟根目錄底下system資料夾內的build.prop(需要root)

拉到下面會看到dalvik.vm.heap...這些檔案

其中8m是app初始時給它的記憶體大小

192m的就是使用app時記憶體增長最大限制

512m是虛擬機配給它的大小

這些是系統預設的

比照上面Log,會發現那個192m就是每次打開應用程式就會當掉已停止被限制所致










所以快速解決的方式就是調整它!把它調大!

基本上以8的倍數調整

我這邊直接分別改成8m,512m,768m

改完就存檔就可以重新開機完成設定生效!








重開機完後馬上打開應用程式驗證一下

終於不會再當掉,出現已停止了!








切到執行中的頁面會發現...那個設定已經吃了兩百多MB!!

所以限制它增長只能到192m鐵定會出事!





沒有留言:

張貼留言