如何在Android中创建对象数据库

如何在Android中创建对象数据库,android,database,Android,Database,在我的应用程序中,我有3个编辑文本和一个保存按钮,我想用db4o将这些值存储在一个按钮上,但它显示了一个空指针异常 Logcat详细信息: 11-12 14:29:32.566: W/KeyCharacterMap(12122): No keyboard for id 0 11-12 14:29:32.594: W/KeyCharacterMap(12122): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 11-12 14:

在我的应用程序中,我有3个编辑文本和一个保存按钮,我想用db4o将这些值存储在一个按钮上,但它显示了一个空指针异常

Logcat详细信息:

11-12 14:29:32.566: W/KeyCharacterMap(12122): No keyboard for id 0
11-12 14:29:32.594: W/KeyCharacterMap(12122): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
11-12 14:29:41.694: D/AndroidRuntime(12122): Shutting down VM
11-12 14:29:41.694: W/dalvikvm(12122): threadid=1: thread exiting with uncaught exception (group=0x40015560)
11-12 14:29:41.863: E/AndroidRuntime(12122): FATAL EXCEPTION: main
11-12 14:29:41.863: E/AndroidRuntime(12122): java.lang.NullPointerException
11-12 14:29:41.863: E/AndroidRuntime(12122):    at java.io.File.fixSlashes(File.java:205)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at java.io.File.init(File.java:189)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at java.io.File.<init>(File.java:139)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.io.FileStorage.exists(FileStorage.java:29)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.io.StorageDecorator.exists(StorageDecorator.java:23)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.IoAdaptedObjectContainer.openImpl(IoAdaptedObjectContainer.java:42)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.ObjectContainerBase$1.run(ObjectContainerBase.java:140)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.foundation.DynamicVariable.with(DynamicVariable.java:54)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.foundation.Environments.runWith(Environments.java:28)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.ObjectContainerBase.withEnvironment(ObjectContainerBase.java:161)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.ObjectContainerBase.open(ObjectContainerBase.java:131)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.IoAdaptedObjectContainer.<init>(IoAdaptedObjectContainer.java:35)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.internal.ObjectContainerFactory.openObjectContainer(ObjectContainerFactory.java:18)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.db4o.Db4oEmbedded.openFile(Db4oEmbedded.java:65)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.example.db4object.Db4ObjectsHelper.OpenDb(Db4ObjectsHelper.java:23)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.example.db4object.MainActivity$1.onClick(MainActivity.java:33)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.view.View.performClick(View.java:2485)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.view.View$PerformClick.run(View.java:9080)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.os.Handler.handleCallback(Handler.java:587)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.os.Looper.loop(Looper.java:123)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at android.app.ActivityThread.main(ActivityThread.java:3683)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at java.lang.reflect.Method.invokeNative(Native Method)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at java.lang.reflect.Method.invoke(Method.java:507)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-12 14:29:41.863: E/AndroidRuntime(12122):    at dalvik.system.NativeStart.main(Native Method)
11-12 14:29:41.963: D/dalvikvm(12122): GC_CONCURRENT freed 310K, 52% free 2733K/5639K, external 410K/517K, paused 13ms+9ms
11-12 14:34:42.160: I/Process(12122): Sending signal. PID: 12122 SIG: 9
11-12 14:29:32.566:W/KeyCharacterMap(12122):id 0没有键盘
11-12 14:29:32.594:W/KeyCharacterMap(12122):使用默认keymap:/system/usr/keychars/qwerty.kcm.bin
11-12 14:29:41.694:D/AndroidRuntime(12122):关闭虚拟机
11-12 14:29:41.694:W/dalvikvm(12122):threadid=1:线程以未捕获异常退出(组=0x40015560)

11-12 14:29:41.863:E/AndroidRuntime(12122):致命异常:main
11-12 14:29:41.863:E/AndroidRuntime(12122):java.lang.NullPointerException
11-12 14:29:41.863:E/AndroidRuntime(12122):位于java.io.File.fixSlashes(File.java:205)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于java.io.File.init(File.java:189)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于java.io.File.(File.java:139)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.io.FileStorage.exists(FileStorage.java:29)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.io.StorageDecorator.exists(StorageDecorator.java:23)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.IoAdaptedObjectContainer.openImpl(IoAdaptedObjectContainer.java:42)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.ObjectContainerBase$1.run(ObjectContainerBase.java:140)
11-12:14:29:41.863:E/AndroidRuntime(12122):在COM.D4java。
11-12 14:29:41.863:E/AndroidRuntime(12122):在COM.D4O.Frase.Run.Run附带(环境:java:28)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.ObjectContainerBase.withEnvironment(ObjectContainerBase.java:161)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.ObjectContainerBase.open(ObjectContainerBase.java:131)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.IoAdaptedObjectContainer。(IoAdaptedObjectContainer.java:35)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.internal.ObjectContainerFactory.openObjectContainer(ObjectContainerFactory.java:18)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于com.db4o.Db4oEmbedded.openFile(Db4oEmbedded.java:65)
11-12 14:29:41.863:E/AndroidRuntime(12122):在com.example.db4object.Db4ObjectsHelper.OpenDb(Db4ObjectsHelper.java:23)
11-12 14:29:41.863:E/AndroidRuntime(12122):在com.example.db4object.MainActivity$1.onClick(MainActivity.java:33)
11-12 14:29:41.863:E/AndroidRuntime(12122):在android.view.view.performClick(view.java:2485)
11-12 14:29:41.863:E/AndroidRuntime(12122):在android.view.view$PerformClick.run(view.java:9080)
11-12 14:29:41.863:E/AndroidRuntime(12122):在android.os.Handler.handleCallback(Handler.java:587)上
11-12 14:29:41.863:E/AndroidRuntime(12122):在android.os.Handler.dispatchMessage(Handler.java:92)上
11-12 14:29:41.863:E/AndroidRuntime(12122):在android.os.Looper.loop(Looper.java:123)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于android.app.ActivityThread.main(ActivityThread.java:3683)
11-12 14:29:41.863:E/AndroidRuntime(12122):位于java.lang.reflect.Method.Invokenactive(本机方法)
11-12 14:29:41.863:E/AndroidRuntime(12122):在java.lang.reflect.Method.invoke(Method.java:507)
11-12 14:29:41.863:E/AndroidRuntime(12122):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-12 14:29:41.863:E/AndroidRuntime(12122):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-12 14:29:41.863:E/AndroidRuntime(12122):在dalvik.system.NativeStart.main(本机方法) 11-12 14:29:41.963:D/dalvikvm(12122):GC_并发释放310K,52%释放2733K/5639K,外部410K/517K,暂停13毫秒+9毫秒 11-12 14:34:42.160:I/进程(12122):发送信号。PID:12122信号:9
请帮助。

浏览示例并


这将有助于您在android中创建db4o数据库

在android中创建数据库是一件痛苦的事情。使用
ContentProvider
API更好,而且更难

下面的库非常简单,您也可以使用
ContentProvider
。(用于插入和查询数据库)


您能分享一下您的代码吗?是的,当然……我已经编辑了我的问题。您可以在那里查看…11-12 14:29:41.863:E/AndroidRuntime(12122):在com.db4o.Db4oEmbedded.openFile(Db4oEmbedded.java:65)11-12 14:29:41.863:E/AndroidRuntime(12122):在com.example.db4object.Db4ObjectsHelper.OpenDb(Db4ObjectsHelper.java:23)11-12 14:29:41.863:E/AndroidRuntime(12122):在com.example.db4object.MainActivity$1.onClick(MainActivity.java:33)上,请在上面的错误行中发布代码sprivate void onClickListener(){mbtnSave.setOnClickListener(){@Override public void onClick(View v){getEditTextValue();dbHelper.OpenDb();dbHelper.StoreContact(person);dbHelper.getAllContacts();dbHelper.CloseDb();}如何检查输出?我的意思是如何检查表是否已创建?我的SqlLite数据库浏览器2.0不支持db4o