2012-10-09 4 views
1

Android 연락처 API를 사용하는 앱을 개발하고 있습니다. 내 코드는 정상적으로 작동하지만 최근 Play Market 피드백의 새로운 오류가 표시되기 시작했습니다. theese 오류가 SGS3 및 Note2에만 표시되는 것처럼 보입니다.SG SIII의 예외 및 연락처 API를 사용하는 동안 JB 업데이트로 인한 참고 2

java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.support.v4.content.ModernAsyncTask$3.done(Unknown Source) 
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
at java.lang.Thread.run(Thread.java:856) 
Caused by: android.database.sqlite.SQLiteException: near ":<phonenumber>": syntax error (code 1): , while compiling: SELECT times_contacted, contacts_status_updates.status AS contact_status, phonetic_name, phonetic_name_style, ((CASE WHEN raw_contact_linkpriority1 > 0 THEN link_type1||'|' ELSE '' END)||(CASE WHEN raw_contact_linkpriority2 > 0 THEN link_type2||'|' ELSE '' END)||(CASE WHEN raw_contact_linkpriority3 > 0 THEN link_type3||'|' ELSE '' END)||(CASE WHEN raw_contact_linkpriority4 > 0 THEN link_type4||'|' ELSE '' END)||(CASE WHEN raw_contact_linkpriority5 > 0 THEN link_type5 ELSE '' END)) AS link, is_user_profile, snippet, raw_contact_linkpriority4, lookup, raw_contact_linkpriority5, contacts_status_updates.status_icon AS contact_status_icon, sec_custom_vibration, last_time_contacted, _id, photo_uri, display_name_source, photo_thumb_uri, agg_presence.chat_capability AS contact_chat_capability, photo_id, send_to_voicemail, display_name_alt AS display_name_reverse, name_raw_contact_id, custom_ringtone, photo_file_id, has_phone_number, link_type5, link_type4, link_type3, link_type2, contacts_status_updates.status_label AS contact_status_label, link_type1, raw_contact_linkpriority3, display_name, raw_contact_linkpriority2, raw_contact_linkpriority1, sort_key_alt, has_email, in_visible_group, dirty_contact, starred, link_count, sort_key, display_name_alt, agg_presence.mode AS contact_presence, contacts_status_updates.status_res_package AS contact_status_res_package, contacts_status_updates.status_ts AS contact_status_ts FROM view_contacts_restricted JOIN (SELECT contact_id AS snippet_contact_id, ifnull('['||(SELECT MIN(data1) FROM data JOIN raw_contacts ON (data.raw_contact_id = raw_contacts._id) JOIN phone_lookup ON data._id=phone_lookup.data_id WHERE search_index.contact_id=contact_id AND normalized_number LIKE '%+<phonenumber>%' OR normalized_number LIKE '%+<phonenumber>%')||']',snippet(search_index,'[',']','...',1,-10)) AS snippet FROM search_index WHERE search_index MATCH content:<phonenumber>* OR name:2024121E20201E14122412* UNION SELECT contact_id AS snippet_contact_id, NULL AS snippet FROM phone_lookup JOIN raw_contacts ON (raw_contacts._id=raw_contact_id) WHERE normalized_number LIKE '%+<phonenumber>%') ON (_id=snippet_contact_id) LEFT OUTER JOIN agg_presence ON (_id = agg_presence.presence_contact_id) LEFT OUTER JOIN status_updates contacts_status_updates ON (status_update_id=contacts_status_updates.status_update_data_id) 
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:184) 
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140) 
at android.content.ContentProviderProxy.query(ContentProviderNative.java:366) 
at android.content.ContentResolver.query(ContentResolver.java:372) 
at android.content.ContentResolver.query(ContentResolver.java:315) 
at android.support.v4.content.CursorLoader.loadInBackground(Unknown Source) 
at android.support.v4.content.CursorLoader.loadInBackground(Unknown Source) 
at android.support.v4.content.AsyncTaskLoader.onLoadInBackground(Unknown Source) 
at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(Unknown Source) 
at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(Unknown Source) 
at android.support.v4.content.ModernAsyncTask$2.call(Unknown Source) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
... 4 more 
+0

은 실제로 사용자가 검색하는 연락처의 전화 번호입니다. – nixan

+0

질문을 편집 할 수 있습니다. –

답변

0
SQLiteException: near ":<phonenumber>": syntax error ... while compiling: 
... WHERE search_index MATCH content:<phonenumber>* OR name:2024121E20201E14122412* ... 

MATCH 문자열에 작동합니다. 코드는 다음과 그들 주위에 따옴표를 넣어 잊었 :

... MATCH 'content:<phonenumber>* OR name:2024121E20201E14122412*' ... 

이 안드로이드의 연락 컨텐츠 제공 업체의 해당 버전에서 버그가 수 있도록 나타납니다.

+0

그런 다음이 예외가 JB를 실행하는 두 장치에서만 나타나는 이유는 무엇입니까? – nixan

+0

mUri = Uri.withAppendedPath (ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI, Uri.encode (phoneNumber)); SQL 요청 방법입니다. – nixan

+0

내 앱과 동일한 오류가 발생했습니다. @nixan :이 오류가 발생하는 이유 또는 해결책을 찾았습니까? – chrisonline