3

我使用 Firebird 直接 wifi 连接在 android 上创建了一个应用程序。有时我会收到此错误:

致命异常:AsyncTask #4 java.lang.RuntimeException:在 java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask) 在 android.os.AsyncTask$3.done(AsyncTask.java:200) 处执行 doInBackground() 时发生错误.java:274) 在 java.util.concurrent.FutureTask.setException(FutureTask.java:125) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 在 java.util.concurrent.FutureTask。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 在 java.lang.Thread 运行(FutureTask.java:138) .run(Thread.java:1019) 原因:org.firebirdsql.jdbc.AbstractConnection 中 org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDatabaseInfo(AbstractJavaGDSImpl.java:518) 中的 java.lang.NullPointerException。isValid(AbstractConnection.java:594) 在 br.com.controlemesa.banco.DBFBConnect.disconnect(DBFBConnect.java:61) 在 br.com.controlemesa.banco.DBFBConnect.spListaMesas(DBFBConnect.java:170) 在 br.com .controlemesa.activities.MesasActivity$PopulaGridMesas.doInBackground(MesasActivity.java:193) 在 br.com.controlemesa.activities.MesasActivity$PopulaGridMesas.doInBackground(MesasActivity.java:1) 在 android.os.AsyncTask$2.call(AsyncTask. java:185) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) ... 4 更多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 更多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 更多

有没有其他人收到这个消息?我怎样才能防止这种情况?

4

1 回答 1

2

查看代码,NullPointerException如果连接已关闭,则可能会发生这种情况。我在 Jaybird 跟踪器中创建了问题JDBC-313 。我将在 2.2.4 版的“普通”Jaybird 中修复它。通常,Android Jaybird 项目的维护者会在此之后不久发布一个新版本。

不知道您的确切代码,我不确定解决方法是什么。正如您的堆栈跟踪列表DBFBConnect.disconnect,我假设您想断开连接。在这种情况下,我建议您不要检查连接的有效性,而只需调用close()连接即可。

于 2013-06-19T07:09:57.707 回答