我在 Android 上使用 Firebird 直接 wifi 连接创建了一个应用程序。 有时我会收到此错误:
FATAL EXCEPTION: AsyncTask #4 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:200) at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) at java.util.concurrent.FutureTask.setException(FutureTask.java:125) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) at java.lang.Thread.run(Thread.java:1019) Caused by: java.lang.NullPointerException at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDatabaseInfo(AbstractJavaGDSImpl.java:518) at org.firebirdsql.jdbc.AbstractConnection.isValid(AbstractConnection.java:594) at br.com.controlemesa.banco.DBFBConnect.disconnect(DBFBConnect.java:61) at br.com.controlemesa.banco.DBFBConnect.spListaMesas(DBFBConnect.java:170) at br.com.controlemesa.activities.MesasActivity$PopulaGridMesas.doInBackground(MesasActivity.java:193) at br.com.controlemesa.activities.MesasActivity$PopulaGridMesas.doInBackground(MesasActivity.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:185) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) ... 4 more
有其他人收到此消息吗?我怎样才能避免这种情况?
最佳答案
查看代码,如果连接已关闭,则可能会发生此 NullPointerException
。我创建了问题 JDBC-313在 Jaybird 追踪器中。我将在版本 2.2.4 的“普通”Jaybird 中修复它。通常是 Android Jaybird project 的维护者不久之后将发布一个新版本。
不知道您的确切代码,我不确定解决方法是什么。当您的堆栈跟踪列出 DBFBConnect.disconnect
时,我假设您想要断开连接。在这种情况下,我建议您不要检查连接的有效性,而只需在连接上调用 close()
。
关于android - 使用 Jaybird 和 Android 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160036/