PathfinderOpenReference icon indicating copy to clipboard operation
PathfinderOpenReference copied to clipboard

android.database.sqlite.SQLiteDatabaseLockedException: SectionViewActivity.onCreate

Open devonjones opened this issue 13 years ago • 5 comments

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.evilsoft.pathfinder.reference/org.evilsoft.pathfinder.reference.SectionViewActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2079) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) at android.app.ActivityThread.access$600(ActivityThread.java:132) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4575) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) at android.view.LayoutInflater.inflate(LayoutInflater.java:466) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251) at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:306) at org.evilsoft.pathfinder.reference.SectionViewActivity.onCreate(SectionViewActivity.java:12) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) ... 11 more Caused by: android.database.sqlite.SQLiteDatabaseLockedException: database is locked at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2074) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1014) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986) at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:802) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157) at org.evilsoft.pathfinder.reference.db.user.PsrdUserDbAdapter.open(PsrdUserDbAdapter.java:21) at org.evilsoft.pathfinder.reference.SectionViewFragment.openDb(SectionViewFragment.java:81) at org.evilsoft.pathfinder.reference.SectionViewFragment.onCreate(SectionViewFragment.java:67) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:834) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1058) at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1156) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:270) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669) ... 21 more android.view.InflateException: Binary XML file line #2: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) at android.view.LayoutInflater.inflate(LayoutInflater.java:466) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251) at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:306) at org.evilsoft.pathfinder.reference.SectionViewActivity.onCreate(SectionViewActivity.java:12) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) at android.app.ActivityThread.access$600(ActivityThread.java:132) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4575) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at dalvik.system.NativeStart.main(Native Method) Caused by: android.database.sqlite.SQLiteDatabaseLockedException: database is locked at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2074) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1014) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986) at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:802) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157) at org.evilsoft.pathfinder.reference.db.user.PsrdUserDbAdapter.open(PsrdUserDbAdapter.java:21) at org.evilsoft.pathfinder.reference.SectionViewFragment.openDb(SectionViewFragment.java:81) at org.evilsoft.pathfinder.reference.SectionViewFragment.onCreate(SectionViewFragment.java:67) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:834) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1058) at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1156) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:270) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669) ... 21 more android.database.sqlite.SQLiteDatabaseLockedException: database is locked at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2074) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1014) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986) at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:802) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157) at org.evilsoft.pathfinder.reference.db.user.PsrdUserDbAdapter.open(PsrdUserDbAdapter.java:21) at org.evilsoft.pathfinder.reference.SectionViewFragment.openDb(SectionViewFragment.java:81) at org.evilsoft.pathfinder.reference.SectionViewFragment.onCreate(SectionViewFragment.java:67) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:834) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1058) at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1156) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:270) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669) at android.view.LayoutInflater.inflate(LayoutInflater.java:466) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251) at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119) at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:306) at org.evilsoft.pathfinder.reference.SectionViewActivity.onCreate(SectionViewActivity.java:12) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) at android.app.ActivityThread.access$600(ActivityThread.java:132) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4575) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at dalvik.system.NativeStart.main(Native Method)

devonjones avatar Jun 21 '12 16:06 devonjones

Switching your database access to a content provider should fix this issue, as it deals with concurrent DB connections automatically. Enough times dealing with this exact situation on my own projects is why I always start with a content provider, even if it seems like overkill.

konk3r avatar Jul 26 '13 17:07 konk3r

Good to know, thanks!

Turns out I'm in the process of creating content providers for every aspect of the system anyway, as I'm working towards releasing an api for anyone who wants access to rules data for other gaming apps. So this tells me that I need to port the interface to using those content providers internally.

devonjones avatar Jul 26 '13 21:07 devonjones

Out of curiosity, is "org.evilsoft.pathfinder.reference.api.ClassContentProvider" one of the content providers you are adding? And that's a great choice, forcing yourself to internally use the APIs you are offering externally will cut down on redundancies, and also ensure that you are offering a quality API for others to use.

konk3r avatar Jul 27 '13 04:07 konk3r

Yeah. I have the code Class and Spell providers working in my local repo, I may push to github later tonight.

devonjones avatar Jul 28 '13 21:07 devonjones

Okay, I thought so. Those providers were already pushed in the manifest so I had to remove them locally to get it to run. Just making sure I didn't miss something else.

konk3r avatar Jul 29 '13 22:07 konk3r