2012-12-13 4 views
0

안드로이드 2.2와 sqlite 3.7.4를 사용하는 방법? 모든 검색어는 android 2.2에서는 작동하지 않지만 벌집, ICS에서는 작동합니다. 도와주세요. 나는 테이블을 fts3 사용하고안드로이드 2.2와 Sqlite 3.7.4

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); 
} 

:

이 내 쿼리입니다.

로그 : ICS에

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

이 쿼리 작동합니다.

나는 thisthis 게시물을 읽었습니다.

+2

"모든 검색어가 android 2.2에서 작동하지 않습니다"라는 의미는 무엇입니까? – wtsang02

+0

@ wtsang02 내 질문을 편집했습니다. 이해합니까? –

+0

사실 우리는 어떻게 테이블이 어떻게 생겼는지,이 ​​쿼리를 사용하기 위해 코드를 어떻게 작성했는지 모르기 때문에 코드를 추가하십시오. – wtsang02

답변

2

장치의 펌웨어에있는 SQLite 버전을 변경할 수 없습니다. 그것이 무엇이며, this SO answer은 다른 버전의 멋진 목록을 가지고 있습니다.

SQLCipher for Android을 사용해보실 수 있습니다.이 버전은 3.7.4 이상의 최신 SQLite를 기반으로하고 있으며 원하는 경우 암호화를 제공합니다. 하지만 APK 크기에 몇 MB가 추가됩니다.

그렇지 않으면 스키마와 쿼리를 이전 SQLite 버전에서 성공적으로 작동하는 것으로 다시 작성하거나 너무 오래된 버전의 SQLite를 지원하는 이전 Android 버전 지원을 중단해야합니다.