This simple code reproduces the problem. Just go back and forth and,
eventually the app crash with OOM error. It took me 34 times with this code
to crash.
public void start() {
if(current != null){
current.show();
return;
}
Form hi = new Form("Map Test", new
BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE));
Button btn = new Button("Show Map");
hi.add(BorderLayout.CENTER, btn);
hi.show();
Command back = new Command("Back") {
@Override
public void actionPerformed(ActionEvent evt) {
hi.showBack();
}
};
btn.addActionListener((evt) -> {
Form hi2 = new Form("Map show", new BorderLayout());
hi2.getToolbar().addCommandToLeftBar(back);
hi2.setBackCommand(back);
MapContainer map = new MapContainer(MAP_KEY);
hi2.add(BorderLayout.CENTER, map);
hi2.show();
});
}
I was lucky to get a stack trace only once, not from this code but from
the actual program:
[EDT] 0:3:12,363 - Exception: java.lang.OutOfMemoryError - Failed to
allocate a 1920012 byte allocation with 655288 free bytes and 639KB until
OOM
java.lang.OutOfMemoryError: Failed to allocate a 1920012 byte allocation
with 655288 free bytes and 639KB until OOM
at com.codename1.v.w.b(Image.java:844)
at com.codename1.v.w.w(Image.java:827)
at com.codename1.impl.a.a(CodenameOneImplementation.java:2843)
at com.codename1.v.w.m(Image.java:1073)
at com.codename1.v.r.m(EncodedImage.java:680)
at com.codename1.v.g.e.o(Style.java:1152)
at com.codename1.impl.android.a$a.a(AndroidAsyncView.java:1225)
at com.codename1.impl.android.d.a(AndroidImplementation.java:1866)
at com.codename1.v.k$a.a(Component.java:5704)
at com.codename1.v.k.s(Component.java:1937)
at com.codename1.v.k.l(Component.java:1896)
at com.codename1.v.k.b(Component.java:1549)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1558)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.n.a(Container.java:1439)
at com.codename1.v.u.a(Form.java:3256)
at com.codename1.v.k.b(Component.java:1564)
at com.codename1.v.u.b(Form.java:3266)
at com.codename1.v.k.d(Component.java:1538)
at com.codename1.v.k.a(Component.java:1513)
at com.codename1.v.k.d(Component.java:1481)
at com.codename1.v.k.c(Component.java:1766)
at com.codename1.v.k.i(Component.java:1713)
at com.codename1.impl.a.q(CodenameOneImplementation.java:585)
at com.codename1.v.q.j(Display.java:1078)
at com.codename1.v.q.i(Display.java:1000)
at com.codename1.v.ag.run(RunnableWrapper.java:120)
at com.codename1.impl.b$1.run(CodenameOneThread.java:60)
at java.lang.Thread.run(Thread.java:761)
--
You received this message because you are subscribed to the Google Groups
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit
https://groups.google.com/d/msgid/codenameone-discussions/183e5bb4-6194-45c3-9b87-df6933586b54%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.