0

Android 2.2でsqlite 3.7.4を使用するには? Android 2.2ではクエリは機能しませんが、ハニカム、ICSでは機能します。私を助けてください。

これは私のクエリです:

select snippet(content,'<b>','</b>','...',-1) as mytext,docid as _id from content where text match 'book*'"


public Cursor getSearchResult(String str) {
    String query = new StringBuilder().append("select snippet(content,'<b>','</b>','...',-1) as mytext,docid as _id from content where").append(" text match '").append(str).append("*'").toString();
    return database.rawQuery(query, null);
}

私はfts3テーブルを使用しています。

ログ:

android.database.sqlite.SQLiteException: SQL logic error or missing database

このクエリは ICS で機能します。

これこの投稿を読みました。

4

1 に答える 1

2

デバイスのファームウェアにある SQLite のバージョンを変更することはできません。それが何であるかであり、このSOの回答には、さまざまなバージョンのそれが何であるかの素晴らしい名簿があります.

SQLCipher for Androidを試すことができます。これは、3.7.4 よりも新しいバージョンの SQLite に基づいていると思います。必要に応じて暗号化を提供します。ただし、APK サイズに数 MB が追加されます。

それ以外の場合は、古い SQLite バージョンで正常に動作するようにスキーマとクエリを作り直すか、SQLite のバージョンが古すぎる古い Android バージョンのサポートを停止する必要があります。

于 2012-12-13T01:21:24.610 に答える