Search code examples
databasejava-melwuitcodenameone

codenameone simulator file access error


I develope an application with codenameone and now I add Perst database engine to it.

When I want to open database file I get error "File access error". Here is error output:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.codename1.impl.javase.Executor$1.run(Executor.java:87)
at com.codename1.ui.Display.processSerialCalls(Display.java:984)
at com.codename1.ui.Display.mainEDTLoop(Display.java:827)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:119)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)

Caused by: org.garret.perst.StorageError: File access error: java.lang.NullPointerException at org.garret.perst.impl.RmsFile.open(RmsFile.java:169) at org.garret.perst.impl.StorageImpl.open(StorageImpl.java:827) at com.saminray.database.DBManager.foo(DBManager.java:24) at com.saminray.mobilebank.MainUI.(MainUI.java:21) at com.saminray.mobilebank.Main.start(Main.java:78) ... 9 more Java Result: 1

I think it depend on codenameone simulator. How can I fix it?


Solution

  • You cannot add an external database to codenameone apps. CodenameOne supports sqlite if exists on devices (IOS, Android, RIM) for J2ME you have the Storage API which is more portable and work on all platforms.