{ "id": "154088", "key": "TIMOB-20443", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "17706", "name": "Release 5.4.0", "archived": false, "released": true, "releaseDate": "2016-08-11" }, { "id": "17993", "description": "Release 5.2.2", "name": "Release 5.2.2", "archived": false, "released": true, "releaseDate": "2016-04-05" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-03-28T21:03:16.000+0000", "created": "2016-01-04T03:28:31.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "Android" ], "versions": [], "issuelinks": [], "assignee": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "updated": "2016-03-29T18:48: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": "10202", "name": "Android", "description": "Android Platform" } ], "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\r\n\r\nI have created a PR and Fix for this here:\r\nhttps://github.com/appcelerator/titanium_mobile/pull/7607", "attachment": [], "flagged": false, "summary": "Custom Database Path (Android) Does Not Create New DB with Ti.Database.open", "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, Ti SDK 5.0+", "closedSprints": [ { "id": 596, "state": "closed", "name": "2016 Sprint 05 Tooling", "startDate": "2016-02-27T01:30:53.769Z", "endDate": "2016-03-12T01:30:00.000Z", "completeDate": "2016-03-14T11:54:10.256Z", "originBoardId": 121 } ], "comment": { "comments": [ { "id": "377612", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Seems like both tickets were closed as duplicate. Reopening this.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-02-23T07:53:32.000+0000", "updated": "2016-02-23T07:53:32.000+0000" }, { "id": "379505", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR https://github.com/appcelerator/titanium_mobile/pull/7607 reviewed and merged.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-03-11T06:44:56.000+0000", "updated": "2016-03-11T06:44:56.000+0000" }, { "id": "380839", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Reopening issue for the 5.2.2 backport: https://github.com/appcelerator/titanium_mobile/pull/7891", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-03-28T19:10:21.000+0000", "updated": "2016-03-28T21:03:40.000+0000" }, { "id": "380971", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix.\r\n\r\nA database is opened if exists or created & opened if does not exists.\r\n\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 4.5.0.201602170831\r\nTi SDK : 5.2.2.v20160328141205, 5.4.0.v20160329102039\r\nTi CLI : 5.0.6\r\nAlloy : 1.8.2\r\nMAC El Capitan : 10.11.13\r\nAppc NPM : 4.2.4\r\nAppc CLI : 5.2.1\r\nNode: 4.2.2\r\nNexus 6 - Android 6.0", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-03-29T18:36:14.000+0000", "updated": "2016-03-29T18:46:21.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }