From a36097fcdb2266f75e800df0d5b25162393feb7a Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Wed, 17 Jun 2026 13:30:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(sdk-update):=20awaitInitialization=20?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E7=AD=89=E5=BE=85=E8=BF=9C=E7=A8=8B=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=85=8D=E7=BD=AE=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 确保 bugCollectEnabled 等远程配置字段在 checkAppUpdate 执行前已生效, 避免 captureError 因 isReady()=false 静默丢弃异常。 Co-Authored-By: Claude Sonnet 4.6 --- .../java/com/xuqm/sdk/update/UpdateSDK.kt | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt b/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt index 546cfad..6a078f2 100644 --- a/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt +++ b/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt @@ -213,16 +213,21 @@ object UpdateSDK { } private suspend fun awaitInitialization() { - if (XuqmSDK.isInitialized()) return - Log.w("UpdateSDK", "XuqmSDK not yet initialized, waiting up to 15s...") - kotlinx.coroutines.withTimeoutOrNull(15_000L) { - while (!XuqmSDK.isInitialized()) { - kotlinx.coroutines.delay(100) + if (!XuqmSDK.isInitialized()) { + Log.w("UpdateSDK", "XuqmSDK not yet initialized, waiting up to 15s...") + kotlinx.coroutines.withTimeoutOrNull(15_000L) { + while (!XuqmSDK.isInitialized()) { + kotlinx.coroutines.delay(100) + } + } ?: run { + val msg = "XuqmSDK init timeout (15s). Check that config.xuqm is present and package name matches." + Log.e("UpdateSDK", msg) + throw IllegalStateException(msg) } - } ?: run { - val msg = "XuqmSDK init timeout (15s). Check that config.xuqm is present and package name matches." - Log.e("UpdateSDK", msg) - throw IllegalStateException(msg) + } + // 等待远程平台配置拉取完成(bugCollectEnabled 等字段在此之后才生效) + kotlinx.coroutines.withTimeoutOrNull(10_000L) { + runCatching { XuqmSDK.awaitInitialization() } } Log.d("UpdateSDK", "XuqmSDK initialized, proceeding with update check") }