【发布时间】:2017-11-15 04:55:08
【问题描述】:
我的 Android 应用程序有多个活动,现在我的问题无法找到。
A Activity 有一个 recyclerView 它从本地数据库中获取数据,如果我点击它会打开 B Activity 的项目,同样的流程连续然后应用程序崩溃(比如打开 B Activity 回到 A Activity 并再次打开 B Activity-最多 5 到 6 次执行相同的操作然后应用程序崩溃)
崩溃消息与SQLite DATABASE 相关,但无法找到它发生的位置。请帮帮我...已经花更多时间在这上面...
注意:在两个活动中,在 Oncreate 上打开数据库并在 OnDestroy 上关闭数据库
错误信息
E/SQLiteQuery: exception: unable to open database file (code 14); query: SELECT DISTINCT * FROM parameters WHERE inspection_no LIKE '%TEST-123%'
E/InputChannel-JNI: Error 24 dup channel fd 1023.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.testapp.testprocess, PID: 13078
java.lang.RuntimeException: Could not read input channel file descriptors from parcel.
at android.view.InputChannel.nativeReadFromParcel(Native Method)
at android.view.InputChannel.readFromParcel(InputChannel.java:148)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:841)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:640)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3518)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2733)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
【问题讨论】:
-
我认为你完成任务后忘记关闭数据库对象。尝试关闭它..
-
@AdarshAshok,不,在这两个活动中在 Oncreate 上打开数据库并在 OnDestroy 上关闭数据库
-
请在完成任务后关闭数据库...它可能会解决您的问题
-
在 OnPause() 上关闭 dp 连接
标签: android database sqlite android-activity android-recyclerview