Autore Topic: Crash dovuto a un errore "out of memory"  (Letto 577 volte)

Offline rebus_007

  • Utente junior
  • **
  • Post: 51
  • Hola!
  • Respect: +2
    • Github
    • Google+
    • rebus007
    • raphael.bussa
    • rebus_007
    • Mostra profilo
    • rebus007
  • Dispositivo Android:
    Nexus 5X
  • Play Store ID:
    Raphael+Bussa
  • Sistema operativo:
    OS X El Capitan
Crash dovuto a un errore "out of memory"
« il: 13 Ottobre 2014, 16:05:19 CEST »
0
Salve, ho una app che crasha per un errore di "out of memory" che avviene poco prima di questi errori:
10-13 15:10:38.492: E/dalvikvm-heap(22818): Out of memory on a 9437200-byte allocation.
10-13 15:10:38.524: D/skia(22818): --- allocation failed for scaled bitmap
10-13 15:10:38.531: D/AndroidRuntime(22818): Shutting down VM
e subito dopo il crash...
10-13 15:10:38.555: E/AndroidRuntime(22818): FATAL EXCEPTION: main
10-13 15:10:38.555: E/AndroidRuntime(22818): Process: rebus.rss.test, PID: 22818
10-13 15:10:38.555: E/AndroidRuntime(22818): android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.createView(LayoutInflater.java:620)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.inflate(Native Method)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at rebus.rss.test.adapter.ListAdapterMain.getView(ListAdapterMain.java:46)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.AbsListView.obtainView(AbsListView.java:2255)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.ListView.makeAndAddView(ListView.java:1790)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.ListView.fillDown(ListView.java:691)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.ListView.fillFromTop(ListView.java:752)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.ListView.layoutChildren(ListView.java:1630)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.AbsListView.onLayout(AbsListView.java:2087)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:343)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.onLayout(CustomViewAbove.java:476)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.View.layout(View.java:14841)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewGroup.layout(ViewGroup.java:4631)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1986)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1743)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5603)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.Choreographer.doCallbacks(Choreographer.java:574)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.Choreographer.doFrame(Choreographer.java:544)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.os.Handler.handleCallback(Handler.java:733)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.os.Handler.dispatchMessage(Handler.java:95)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.os.Looper.loop(Looper.java:136)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at android.app.ActivityThread.main(ActivityThread.java:5146)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at java.lang.reflect.Method.invokeNative(Native Method)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at java.lang.reflect.Method.invoke(Method.java:515)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at dalvik.system.NativeStart.main(Native Method)
10-13 15:10:38.555: E/AndroidRuntime(22818): Caused by: java.lang.reflect.InvocationTargetException
10-13 15:10:38.555: E/AndroidRuntime(22818):    at java.lang.reflect.Constructor.constructNative(Native Method)
10-13 15:10:38.555: E/AndroidRuntime(22818):    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
10-13 15:10:38.555: E/AndroidRuntime(22818):    a

La app ha una listview modificata, che carica il tutto usando LazyList https://github.com/thest1/LazyList
Pensavo che il problema fosse l'image loader di LazyList e ho messo Picasso, ma il problema persiste, consigli?
"Chi è più pazzo, il pazzo o il pazzo che lo segue?" - Obi-Wan Kenobi

DEVICE CHE USO: Nexus 5X 32 GB | NVIDIA SHIELD Tablet K1 16 GB

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Crash dovuto a un errore "out of memory"
« Risposta #1 il: 13 Ottobre 2014, 17:00:25 CEST »
0
Se sono implicate delle bitmap, potrebbe essere la loro dimensione (non in kbyte, la larghezza x altezza in pixel).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline rebus_007

  • Utente junior
  • **
  • Post: 51
  • Hola!
  • Respect: +2
    • Github
    • Google+
    • rebus007
    • raphael.bussa
    • rebus_007
    • Mostra profilo
    • rebus007
  • Dispositivo Android:
    Nexus 5X
  • Play Store ID:
    Raphael+Bussa
  • Sistema operativo:
    OS X El Capitan
Re:Crash dovuto a un errore &quot;out of memory&quot;
« Risposta #2 il: 13 Ottobre 2014, 17:04:54 CEST »
0
Quindi immagini con risoluzione troppo grossa potrebbero far crashare il tutto?
"Chi è più pazzo, il pazzo o il pazzo che lo segue?" - Obi-Wan Kenobi

DEVICE CHE USO: Nexus 5X 32 GB | NVIDIA SHIELD Tablet K1 16 GB

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Crash dovuto a un errore &quot;out of memory&quot;
« Risposta #3 il: 13 Ottobre 2014, 18:13:50 CEST »
0
Quindi immagini con risoluzione troppo grossa potrebbero far crashare il tutto?

Più che una probabilità è una certezza, dovuta alle dimensioni dell'heap della dalvik.

Purtroppo non ci sono soluzioni facili, se non passare a NDK.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline rebus_007

  • Utente junior
  • **
  • Post: 51
  • Hola!
  • Respect: +2
    • Github
    • Google+
    • rebus007
    • raphael.bussa
    • rebus_007
    • Mostra profilo
    • rebus007
  • Dispositivo Android:
    Nexus 5X
  • Play Store ID:
    Raphael+Bussa
  • Sistema operativo:
    OS X El Capitan
Re:Crash dovuto a un errore &quot;out of memory&quot;
« Risposta #4 il: 13 Ottobre 2014, 18:23:18 CEST »
0
Più che una probabilità è una certezza, dovuta alle dimensioni dell'heap della dalvik.

Purtroppo non ci sono soluzioni facili, se non passare a NDK.

grazie per l'aiuto, ho risolto usando il fatto che wordpress ridimensiona le immagini dall'url, ora carico tutto a 100x100 nelle liste e non ho più di questi problemi. Grazie mille ;)
"Chi è più pazzo, il pazzo o il pazzo che lo segue?" - Obi-Wan Kenobi

DEVICE CHE USO: Nexus 5X 32 GB | NVIDIA SHIELD Tablet K1 16 GB