android.database.sqlite.SQLiteDatabaseLockedException: SectionViewActivity.onCreate
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)
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.
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.
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.
Yeah. I have the code Class and Spell providers working in my local repo, I may push to github later tonight.
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.