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([])
});

l***@outlook.com
- 发布:2025-02-24 17:56
- 更新:2025-02-24 17:56
- 阅读:12
产品分类: 其他/5+ SDK
示例代码:
操作步骤:
前置条件:
- 调用代码示例中的获取联系人的方法
- 手机中联系人数量在20k左右
- 机型为: Samsung Galaxy S22 Ultra,Android 14
在上述条件下, 调用获取联系人, 发现非常慢; 而且出现了空指针异常
前置条件:
- 调用代码示例中的获取联系人的方法
- 手机中联系人数量在20k左右
- 机型为: Samsung Galaxy S22 Ultra,Android 14
在上述条件下, 调用获取联系人, 发现非常慢; 而且出现了空指针异常
预期结果:
能够正常获取到联系人信息
能够正常获取到联系人信息
实际结果:
APP崩溃, 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)
APP崩溃, 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)
bug描述:
调用官方的联系人sdk查询联系人, 报空指针异常;
目标手机联系人数量比较多, 大概20k左右; 接口效率很慢, 同时在报错;
0 个回复