GridView Fehler

Z

zblack

Gast
Hallo Freunde.
ich habe in einer App ein GridView gebaut. für die Bilder habe ich die Klasse die von BaseAdapter abgeleitet wurde erstellt. In der Klasse habe ich ein Integer Array für die Bilder erstellt. Dieses Array beinhaltet insgesamt 27 Bilder (also R.drawable.bild1, .... R.drawable.bild27). Die Bilder an sich haben unterschiedliche Maßen, es ist aber nicht so dass die Bilder 2.5 MB oder höher sind. Das großte Bild hat nur 436 KB.
Wenn ich die App auf dem Smartphone teste werden alle 27 Bilder ohne Fehler und so weiter angezeigt.
Wenn ich die gleiche App mit Emulator ausführe, dann stürzt die App ab.
LogCat sagt dazu :

11-05 14:49:07.446: D/dalvikvm(237): GC freed 680 objects / 60240 bytes in 89ms
11-05 14:49:07.615: D/dalvikvm(237): GC freed 54 objects / 2064 bytes in 75ms
11-05 14:49:09.926: D/dalvikvm(237): GC freed 135 objects / 6304 bytes in 65ms
11-05 14:49:10.595: D/dalvikvm(237): GC freed 56 objects / 2352 bytes in 68ms
11-05 14:49:10.785: D/dalvikvm(237): GC freed 12 objects / 512 bytes in 64ms
11-05 14:49:11.996: D/dalvikvm(237): GC freed 16 objects / 688 bytes in 95ms
11-05 14:49:12.658: D/dalvikvm(237): GC freed 26 objects / 1176 bytes in 83ms
11-05 14:49:12.897: E/dalvikvm-heap(237): 5193466-byte external allocation too large for this process.
11-05 14:49:12.897: E/(237): VM won't let us allocate 5193466 bytes
11-05 14:49:12.897: D/skia(237): --- decoder->decode returned false
11-05 14:49:12.940: D/AndroidRuntime(237): Shutting down VM
11-05 14:49:12.946: W/dalvikvm(237): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
11-05 14:49:12.946: E/AndroidRuntime(237): Uncaught handler: thread main exiting due to uncaught exception
11-05 14:49:12.996: E/AndroidRuntime(237): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
11-05 14:49:12.996: E/AndroidRuntime(237): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:447)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.content.res.Resources.loadDrawable(Resources.java:1705)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.content.res.Resources.getDrawable(Resources.java:580)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.ImageView.resolveUri(ImageView.java:485)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.ImageView.setImageResource(ImageView.java:270)
11-05 14:49:12.996: E/AndroidRuntime(237): at de.meinautohaus.BildAdapter.getView(BildAdapter.java:66)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.AbsListView.obtainView(AbsListView.java:1274)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.GridView.makeAndAddView(GridView.java:1218)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.GridView.makeRow(GridView.java:265)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.GridView.fillDown(GridView.java:218)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.GridView.fillFromTop(GridView.java:337)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.GridView.layoutChildren(GridView.java:1133)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.AbsListView.onLayout(AbsListView.java:1113)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.View.layout(View.java:6830)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.View.layout(View.java:6830)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.View.layout(View.java:6830)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.View.layout(View.java:6830)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.View.layout(View.java:6830)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.ViewRoot.performTraversals(ViewRoot.java:996)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.os.Looper.loop(Looper.java:123)
11-05 14:49:12.996: E/AndroidRuntime(237): at android.app.ActivityThread.main(ActivityThread.java:4363)
11-05 14:49:12.996: E/AndroidRuntime(237): at java.lang.reflect.Method.invokeNative(Native Method)
11-05 14:49:12.996: E/AndroidRuntime(237): at java.lang.reflect.Method.invoke(Method.java:521)
11-05 14:49:12.996: E/AndroidRuntime(237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-05 14:49:12.996: E/AndroidRuntime(237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-05 14:49:12.996: E/AndroidRuntime(237): at dalvik.system.NativeStart.main(Native Method)
11-05 14:49:13.016: I/dalvikvm(237): threadid=7: reacting to signal 3
11-05 14:49:13.026: I/dalvikvm(237): Wrote stack trace to '/data/anr/traces.txt'


warum funktioniert das denn ohne Probleme aufm Handy ?
 
weil der emulator da wohl einfach weniger speicher zur verfügung hat.

kann natürlich dann auch bei gewissen händys auftreten
 
swordi schrieb:
weil der emulator da wohl einfach weniger speicher zur verfügung hat.

kann natürlich dann auch bei gewissen händys auftreten


Überprüfen kannst Du das im Emulatur mit einem AVD mit mehr Speicher. Wenn es dann nicht crashed, lag es wohl an zuwenig Speicher.
 

Ähnliche Themen

D
Antworten
3
Aufrufe
460
jogimuc
J
M
Antworten
1
Aufrufe
1.035
wilco
W
J
Antworten
0
Aufrufe
557
JoEntwickler
J
Zurück
Oben Unten