{ "id": "154082", "key": "AC-552", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2016-01-04T05:07:52.000+0000", "created": "2016-01-02T04:10:43.000+0000", "labels": [ "android", "database" ], "versions": [ { "id": "17038", "name": "Appcelerator Studio 4.5.0", "archived": false, "released": false } ], "issuelinks": [], "assignee": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "updated": "2016-01-04T05:07:52.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "14550", "name": "Appcelerator Modules", "description": "Please enter tickets related to Modules here." } ], "description": "In iOS I can open (or create if doesn't exist) a database in the applicationDataDirectory and it works fine:\r\n\r\n{code:java}\r\ndb = Ti.Database.open(Ti.Filesystem.applicationDataDirectory+filename);\r\n{code}\r\n\r\nHowever in Android I get errors. It doesn't seem like it will even try to create a database.\r\n\r\n{code:java}\r\nvar file = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,\"1554006938\");\r\ndb = Ti.Database.open(file);\r\n\r\nerror log:\r\n[DEBUG] : TiDatabase: (KrollRuntimeThread) [12816,20327] Opening database from filesystem: /data/data/com.abc.abc/app_appdata/1554006938\r\n[ERROR] : SQLiteLog: (14) cannot open file at line 32470 of [9491ba7d73]\r\n[ERROR] : SQLiteLog: (14) os_unix.c:32470: (2) open(/data/data/com.abc.abc/app_appdata/1554006938) -\r\n[ERROR] : SQLiteDatabase: Failed to open database '/data/data/com.abc.abc/app_appdata/1554006938'.\r\n[ERROR] : SQLiteDatabase: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:318)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:228)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:512)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:178)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:891)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:861)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)\r\n[ERROR] : SQLiteDatabase: \tat android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:671)\r\n[ERROR] : SQLiteDatabase: \tat ti.modules.titanium.database.DatabaseModule.open(DatabaseModule.java:66)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:908)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1131)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:352)\r\n[ERROR] : SQLiteDatabase: \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n[ERROR] : SQLiteDatabase: \tat android.os.Looper.loop(Looper.java:145)\r\n[ERROR] : SQLiteDatabase: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)\r\n[WARN] : W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String ti.modules.titanium.database.TiDatabaseProxy.getName()' on a null object reference\r\n[WARN] : W/System.err: \tat ti.modules.titanium.database.DatabaseModule.open(DatabaseModule.java:77)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:908)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1131)\r\n[WARN] : W/System.err: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:352)\r\n[WARN] : W/System.err: \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n[WARN] : W/System.err: \tat android.os.Looper.loop(Looper.java:145)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)\r\n[ERROR] : Error opening DB: {}\r\n{code}\r\n\r\nalso tried this: \r\n{code:java}\r\ndb = Ti.Database.open(Ti.Filesystem.applicationDataDirectory+\"-1501149833\");\r\n\r\nerror log:\r\n[WARN] : W/System.err: java.lang.IllegalArgumentException: File appdata-private://-1501149833 contains a path separator\r\n[WARN] : W/System.err: \tat android.app.ContextImpl.makeFilename(ContextImpl.java:2853)\r\n[WARN] : W/System.err: \tat android.app.ContextImpl.validateFilePath(ContextImpl.java:2837)\r\n[WARN] : W/System.err: \tat android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1503)\r\n[WARN] : W/System.err: \tat android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1497)\r\n[WARN] : W/System.err: \tat android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:276)\r\n[WARN] : W/System.err: \tat ti.modules.titanium.database.DatabaseModule.open(DatabaseModule.java:70)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:908)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1131)\r\n[WARN] : W/System.err: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:352)\r\n[WARN] : W/System.err: \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n[WARN] : W/System.err: \tat android.os.Looper.loop(Looper.java:145)\r\n[WARN] : W/System.err: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)\r\n[ERROR] : Error opening DB: {}\r\n{code}\r\n\r\nNeither work for Android", "attachment": [], "flagged": false, "summary": "Custom Database path - isn't created if non-existent (Android)", "creator": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "environment": "Android, MobileSDK 5+", "comment": { "comments": [ { "id": "373671", "author": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "body": "Darn, this should be a TI-MOB. Ooops!\r\n\r\nCreated pull request for a fix, https://github.com/appcelerator/titanium_mobile/pull/7607.", "updateAuthor": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "created": "2016-01-02T16:20:14.000+0000", "updated": "2016-01-02T16:20:14.000+0000" }, { "id": "373692", "author": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "body": "Mods please delete.", "updateAuthor": { "name": "nitrag", "key": "nitrag", "displayName": "Ryan Gartin", "active": true, "timeZone": "America/New_York" }, "created": "2016-01-04T03:30:12.000+0000", "updated": "2016-01-04T03:30:12.000+0000" }, { "id": "373698", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~nitrag] Noted.\r\n\r\nThis ticket is a duplicate of TC-5819. Closing this ticket.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-01-04T05:07:35.000+0000", "updated": "2016-01-04T05:07:35.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }