[
https://issues.apache.org/jira/browse/CB-2639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Bowser resolved CB-2639.
----------------------------
Resolution: Cannot Reproduce
I'm not getting the same errors on the latest version of Cordova. There was an
issue where we weren't shutting off the WebKit WebSQL database, so while you
can open a database, you would get weird access errors. This is because Google
does not allow file URIs to have a local WebSQL database for security reasons.
Honestly, I have more confidence in the native implementation on older Android
devices than our Storage plugin as far as being feature complete.
Also, we do not endorse any third-party plugins, so YMMV.
> SQLite error: 23 "not authorized" on Android
> --------------------------------------------
>
> Key: CB-2639
> URL: https://issues.apache.org/jira/browse/CB-2639
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 2.2.0
> Environment: Several Android devices, apparently pre-4.1. See
> details below.
> Reporter: Nolan Lawson
> Assignee: Joe Bowser
>
> (Moved from a comment I mistakenly added to CB-592.)
> I am unable to insert/update to the SQLite database using the standard
> {{window.openDatabase()}} approach described in the [Storage
> docs|http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html].
> The transaction fails with the error "23: not authorized".
> I'm using PhoneGap Build and PhoneGap v.2.2.0.
> All I do is create a database:
> {code:JavaScript}
> var db = window.openDatabase('myDatabase', '1.0', "My Database", 1000000);
> {code}
> Then I call a simple chain of two queries on it:
> {code:JavaScript}
> function query(tx) {
> tx.executeSql('select 1 from sqlite_master');
> }
> function onError() {
> ....
> }
> function onSuccess() {
> db.transaction(query2, onError2, onSuccess2);
> }
> function query2(tx) {
> tx.executeSql('create table mytable(mycolumn text)');
> }
> function onError2() {
> ....
> }
> function onSuccess2() {
> ....
> }
> db.transaction(query, onError, onSuccess);
> {code}
> The table below shows the Android devices that I tested this on, and the
> failure I got in each.
> ||Device||Android||Working?||Result||Logcat|| SQLError object||
> |Galaxy Nexus|4.1.1|{color:green}Yes{color}|Logs an error, but still works.|
> {{SQLiteLog E (23) not authorized}}||
> |Nexus One|2.3.7|{color:red}No{color}|Calls the {{onError2}} message
> above.|{{Database I sqlite returned: error code = 23, msg = not
> authorized}}|{code:JavaScript} {"message":"not authorized","code":1} {code}|
> |HTC Magic|2.1-update1|{color:red}No{color}|Calls the {{onError2}} message
> above.|None|{code:JavaScript} {"code":1,"message":"not authorized"} {code}|
> |Galaxy Tab 8.9|4.0.4|{color:red}No{color}|Calls the {{onError2}} message
> above.|{{SqliteDatabaseCpp I sqlite returned: error code = 23, msg = not
> authorized, db=xxx}}|{code:JavaScript} {"code":5,"message":"not authorized"}
> {code}|
> |Samsung GT-I9001|2.3.6|{color:red}No{color}|Calls the {{onError2}} message
> above.|None|{code:JavaScript} {"message":"not authorized","code":1} {code}|
> I've also tested on an iPod Touch (5th generation) with no issues.
> Based on the comments in CB-592, it seems like the problem is caused by
> Android's native Web SQL Database implementation. Apparently they've
> supported it going back to 2.1 ([link|http://caniuse.com/sql-storage]), and
> the [Cordova
> docs|http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html] say
> they defer to the native interface if it's available, meaning that it has
> nothing to do with Cordova's implementation.
> I'm really hoping there's a workaround for this, since otherwise I'm unable
> to use SQLite on Android using Cordova.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira