2013-04-06 84 views
0

我們已經在亞馬遜市場遞交了申請,上傳的apk文件在其他設備上我KFTT完美的工作很好,但我們或其他用戶從亞馬遜市場下載應用程式,它是導致OutOfMemoryError錯誤。我們在遊戲中使用了1024X1024以及2048X2048精靈表。KFTT出現OutofMemory崩潰

當我們安裝.apk文件手動將其永不死機,但它總是得到,當我們從Amazon市場下載後運行它崩潰。 有人可以告訴我們它的原因和如何解決它?

java.lang.OutOfMemoryError 
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:549) 
at com.finoit.androidgames.framework.gl.Texture.load(Texture.java:42) 
at com.finoit.androidgames.framework.gl.Texture.(Texture.java:30) 
at com.finoit.androidgames.tapafish.Assets.load(Assets.java:458) 
at com.finoit.androidgames.tapafish.FishTank.onSurfaceCreated(FishTank.java:23) 
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1446) 
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216) 
+0

堆棧跟蹤? – 2013-04-06 07:59:55

+0

你真的需要看看有什麼吃的記憶。將KF附加到調試器並採取一些措施,看看實際上在吃什麼內存。但請記住,每個設備對於應用可以使用的最大內存量有不同的設置 - KF可能較低。 – 2013-04-06 08:00:34

+0

假設亞馬遜流程中的某些內容略微減少了可用內存,請稍微與堆大小接近?你是否儘快處置位圖? – Offbeatmammal 2013-04-11 00:15:36

回答

0

我也有同樣的行爲:內存在亞馬遜高清8,9,旁邊是大小相同的Nexus 10誰的作品非常好,64 MB。

至於最快的解決方案,我有加largeHeap選項AndroidManifest,這給你更多的內存,theoritcly高達256 MB如果需要。暫時嘗試它作爲最簡單的解決方案。

....

另外,如果你想優化,儘量用DDMS MAT,瞭解分配內存的最大部分。 當你發現的最大塊,通常這是位圖,你可以隨時與bitmapFactory的幫助下加載它們與規模比華電國際低(對於大多數器件的亞馬遜默認濃度),它確實節省內存。從logcat的