Search code examples
codenameone

CN1 crash linked to skins?


I just updated to the latest CN1 sources, but now I get the below error for a project that compiled just before. Any idea about is causing this issue?

NB. I've activated CSS for this demo example since I'm trying debug an issue I have with that. Notice the line with "Failed loading the skin file: /iPhoneX.skin". I have reloaded the CN1 settings for this project, so the iPhoneX skin should be there as far as I understood.

Sorry in advance if I did something stupid, I'm pretty nagged this evening :-)

JavaSE.build-skins:
JavaSE.init-skins:
DEPRECATED - The copydir task is deprecated.  Use copy instead.
Copying 1 file to /Users/user/NetBeansProjects/CodenameOne/Ports/JavaSE/build/classes
Expanding: /Users/user/NetBeansProjects/cn1-binaries/javase/sqlite-jdbc-3.7.15-M1.jar into /Users/user/NetBeansProjects/CodenameOne/Ports/JavaSE/build/classes
Expanding: /Users/user/NetBeansProjects/cn1-binaries/javase/Filters.jar into /Users/user/NetBeansProjects/CodenameOne/Ports/JavaSE/build/classes
JavaSE.compile:
Building jar: /Users/user/NetBeansProjects/CodenameOne/Ports/JavaSE/dist/JavaSE.jar
To run this application from the command line without Ant, try:
/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/jre/bin/java -cp /Users/user/NetBeansProjects/CodenameOne/CodenameOne/dist/CodenameOne.jar:/Users/user/NetBeansProjects/cn1-binaries/javase/sqlite-jdbc-3.7.15-M1.jar:/Users/user/NetBeansProjects/cn1-binaries/javase/Filters.jar:/Users/user/NetBeansProjects/cn1-binaries/javase/jcef.jar:/Users/user/NetBeansProjects/cn1-binaries/javase/jmf-2.1.1e.jar:/Users/user/NetBeansProjects/cn1-binaries/jfxrt.jar:/Users/user/NetBeansProjects/CodenameOne/Ports/JavaSE/dist/JavaSE.jar com.codename1.impl.javase.Simulator
JavaSE.deploy:
JavaSE.jar:
Retina Scale: 2.0
Using stateful mode. Use -help flag to see options for new stateless mode.
Updating merge file /Users/user/NetBeansProjects/safearedemo/css/theme.css.merged
Compiling /Users/user/NetBeansProjects/safearedemo/css/theme.css.merged to /Users/user/NetBeansProjects/safearedemo/src/theme.res
File has not changed since last compile.
CSS file successfully compiled.  /Users/user/NetBeansProjects/safearedemo/src/theme.res
Compile is forcing compliance to the supported API's/features for maximum device compatibility. This allows smaller
        code size and wider device support
compile:
run:
Adding CEF to classpath
Found theme.css file.  Watching for changes...
CSS> Retina Scale: 2.0
CSS> Using stateful mode. Use -help flag to see options for new stateless mode.
CSS> Looks like this CSS file needs CEF on classpath... adding it now, and retrying...
CSS> Adding CEF to classpath
Retina Scale: 2.0
Failed loading the skin file: /iPhoneX.skin
java.lang.NullPointerException
    at com.codename1.impl.javase.JavaSEPort.initializeCoordinates(JavaSEPort.java:2270)
    at com.codename1.impl.javase.JavaSEPort.loadSkinFile(JavaSEPort.java:2491)
    at com.codename1.impl.javase.JavaSEPort.loadSkinFile(JavaSEPort.java:4400)
    at com.codename1.impl.javase.JavaSEPort.init(JavaSEPort.java:4612)
    at com.codename1.impl.CodenameOneImplementation.initImpl(CodenameOneImplementation.java:178)
    at com.codename1.ui.Display.init(Display.java:500)
    at com.codename1.impl.javase.Executor$3.run(Executor.java:242)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
CSS> Retina Scale: 2.0
CSS> Using stateful mode. Use -help flag to see options for new stateless mode.
CSS> Updating merge file /Users/user/NetBeansProjects/safearedemo/css/theme.css.merged
CSS> Starting watch thread to watch [/Users/user/NetBeansProjects/safearedemo/css/theme.css]
CSS> Compiling /Users/user/NetBeansProjects/safearedemo/css/theme.css.merged to /Users/user/NetBeansProjects/safearedemo/src/theme.res
CSS> File has not changed since last compile.
CSS> CSS file successfully compiled.  /Users/user/NetBeansProjects/safearedemo/src/theme.res
java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
    at com.codename1.impl.javase.JavaSEPort$C.blit(JavaSEPort.java:1392)
    at com.codename1.impl.javase.JavaSEPort.flushGraphics(JavaSEPort.java:5613)
    at com.codename1.impl.javase.JavaSEPort$C$3.run(JavaSEPort.java:1557)
    at com.codename1.ui.Display.processSerialCalls(Display.java:1338)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:1125)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
Caused by: java.lang.NullPointerException
    at com.codename1.impl.javase.JavaSEPort$C.drawScreenBuffer(JavaSEPort.java:1467)
    at com.codename1.impl.javase.JavaSEPort$C.access$600(JavaSEPort.java:1189)
    at com.codename1.impl.javase.JavaSEPort$C$1.run(JavaSEPort.java:1358)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Rendering frame took too long 6473 milliseconds
java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
    at com.codename1.impl.javase.JavaSEPort$C.blit(JavaSEPort.java:1392)
    at com.codename1.impl.javase.JavaSEPort$C.blit(JavaSEPort.java:1400)
    at com.codename1.impl.javase.JavaSEPort.flushGraphics(JavaSEPort.java:5602)
    at com.codename1.impl.CodenameOneImplementation.paintDirty(CodenameOneImplementation.java:644)
    at com.codename1.impl.javase.JavaSEPort.paintDirty(JavaSEPort.java:2247)
    at com.codename1.ui.Display.edtLoopImpl(Display.java:1259)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:1162)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
Caused by: java.lang.NullPointerException
    at com.codename1.impl.javase.JavaSEPort$C.drawScreenBuffer(JavaSEPort.java:1467)
    at com.codename1.impl.javase.JavaSEPort$C.access$600(JavaSEPort.java:1189)
    at com.codename1.impl.javase.JavaSEPort$C$1.run(JavaSEPort.java:1358)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Solution

  • If you're working from sources then the skin file for iPhoneX needs to be in the JavaSEPort/src. Normally the build script copies it but we've undergone some changes in our build process and it's possible this is no longer seamless.