调用官方的联系人sdk查询联系人, 报空指针异常;
目标手机联系人数量比较多, 大概20k左右; 接口效率很慢, 同时在报错;
大概调用方法如下:
plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, book => {
// 可通过addressbook进行通讯录操作
book.find(contactFields, list => {
const queryFinishTime = new Date().getTime();
const rst = dealData(list);
const now = new Date().getTime();
logger.info(`Query contact finish! count: ${rst.length}, ` +
`query cost: ${queryFinishTime - startTime}, ` +
`deal cost: ${now - queryFinishTime}ms, ` +
`total cost: ${now - startTime}ms`);
resolve(rst);
}, (e) => {
logger.error("Failed to get contacts:" + e.message);
resolve([]);
}, findOpts)
}, e => {
logger.error("Failed to get address book: " + e.message);
resolve([])
});
crash日志如下:
BOARD:msmnile
BOOTLOADER:G970USQS3CTA3
BRAND:samsung
CPU_ABI:arm64-v8a
CPU_ABI2:
DEVICE:beyond0q
DISPLAY:QP1A.190711.020.G970USQS3CTA3
FINGERPRINT:samsung/beyond0qltesq/beyond0q:10/QP1A.190711.020/G970USQS3CTA3:user/release-keys
HARDWARE:qcom
HOST:21HH1G24
ID:QP1A.190711.020
IS_DEBUGGABLE:false
IS_EMULATOR:false
MANUFACTURER:samsung
MODEL:SM-G970U
PERMISSIONS_REVIEW_REQUIRED:true
PRODUCT:beyond0qltesq
RADIO:unknown
SERIAL:unknown
SUPPORTED_32_BIT_ABIS:[Ljava.lang.String;@c7611f8
SUPPORTED_64_BIT_ABIS:[Ljava.lang.String;@58f66d1
SUPPORTED_ABIS:[Ljava.lang.String;@608a536
TAGS:release-keys
TIME:1579307533000
TYPE:user
UNKNOWN:unknown
USER:dpi
java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getCount()' on a null object reference
at io.dcloud.feature.contacts.ContactAccessorImpl.populateContactArray(ContactAccessorImpl.java:209)
at io.dcloud.feature.contacts.ContactAccessorImpl.search(ContactAccessorImpl.java:175)
at io.dcloud.feature.contacts.JsContactsMgr.execute(JsContactsMgr.java:82)
at io.dcloud.feature.contacts.ContactsFeatureImpl$1.run(ContactsFeatureImpl.java:29)
1 个回复
l***@outlook.com (作者)
持续关注中......