1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

GridView Fehler

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von zblack, 05.11.2011.

  1. zblack, 05.11.2011 #1
    zblack

    zblack Threadstarter 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 ?
     
  2. swordi, 05.11.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    weil der emulator da wohl einfach weniger speicher zur verfügung hat.

    kann natürlich dann auch bei gewissen händys auftreten
     
  3. mradlmaier, 07.11.2011 #3
    mradlmaier

    mradlmaier Gewerbliches Mitglied

    Beiträge:
    158
    Erhaltene Danke:
    17
    Registriert seit:
    28.10.2011

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

Diese Seite empfehlen