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