German Fehler abfangen

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

habe im Activity einen Hintergrundbild und wenn ich dann den Activity mit der Hintergrundbild aufrufe, bekomme ich sporadisch diesen Fehler im Log Bereich und das Hintergrundbild wird dann auch nicht geladen.

weis einer warum das so ist?
ist die Bilddatei zu groß?

B4X:
java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at anywheresoftware.b4a.DynamicBuilder.build(DynamicBuilder.java:19)
   at anywheresoftware.b4a.objects.ActivityWrapper.build(ActivityWrapper.java:311)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at anywheresoftware.b4a.DynamicBuilder.build(DynamicBuilder.java:19)
   at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayoutHelper(LayoutBuilder.java:233)
   at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:123)
   at anywheresoftware.b4a.objects.ActivityWrapper.LoadLayout(ActivityWrapper.java:190)
   at yamu.app.haberyolla._activity_create(haberyolla.java:248)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at anywheresoftware.b4a.BA.raiseEvent2(BA.java:167)
   at yamu.app.haberyolla.afterFirstLayout(haberyolla.java:89)
   at yamu.app.haberyolla.access$100(haberyolla.java:16)
   at yamu.app.haberyolla$WaitForLayout.run(haberyolla.java:74)
   at android.os.Handler.handleCallback(Handler.java:615)
   at android.os.Handler.dispatchMessage(Handler.java:92)
   at android.os.Looper.loop(Looper.java:213)
   at android.app.ActivityThread.main(ActivityThread.java:4787)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
   at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.OutOfMemoryError
   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:599)
   at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.Initialize2(CanvasWrapper.java:498)
   at anywheresoftware.b4a.objects.drawable.BitmapDrawable.build(BitmapDrawable.java:74)
   ... 26 more
 

trebun

Member
Licensed User
Longtime User
Der Fehler könnte schon darauf hinweisen, aber ohne dein Coding, was diesen Fehler prozessiert, ist es was schwierig.

Wie groß sind denn deine Bilder?

Gruß,
trebun
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
1000 x 1600 pixel
und es ist immer das selbe bild das als hintergrund geladen wird.
 

Kiffi

Well-Known Member
Licensed User
Longtime User
1000 x 1600 pixel
:) ich glaube eher, dass trebun wissen wollte, wie groß die Bilddatei ist.

Ein OutOfMemoryError-Fehler bedeutet, dass Dein Speicher in Augenblick des
Ladens zu klein ist. Verkleinere mal die Bilddatei-Größe, indem Du beispielsweise
die Anzahl der Farben reduzierst oder eine JPEG-Komprimierung verwendest.
Hierfür eignet sich jedes Bildbearbeitungprogramm oder (meine Empfehlung)
IrfanView mit dem 'Speichern fürs Web'-Plugin.

Das Laden des Bildes würde ich überdies mit einem Fehlerbehandler
(Try / Catch / End Try) klammern.

Grüße ... Kiffi
 
Top