Android冷启动加载AppLovin开屏广告报错:SDK初始化前尝试加载广告
解决AppLovin冷启动开屏广告加载失败问题
问题根源
报错Attempted to load ad before SDK initialization. Please wait until after the SDK has initialized的核心原因是**initializeSdk()是异步操作**:
- 冷启动时,Application中调用
initializeSdk()后代码会继续执行,但SDK实际仍在后台初始化;此时启动首页并触发开屏广告加载,就会触发初始化未完成的报错。 - 应用切后台再回到前台时,SDK已经完成初始化,因此广告能正常展示。
你的现有代码没有等待SDK初始化完成就可能触发广告加载,这是冷启动失败的关键。
修复方案
必须在SDK初始化完成的回调中,再执行开屏广告的加载逻辑。修改Application类的初始化代码如下:
AppLovinSdk.getInstance(applicationContext).setMediationProvider("max") val sdk = AppLovinSdk.getInstance(this) sdk.settings.isMuted = true if (BuildConfig.DEBUG) { sdk.settings.setVerboseLogging(true) } // 异步初始化SDK,在回调中处理后续广告逻辑 sdk.initializeSdk(object : AppLovinSdk.InitializationListener { override fun onSdkInitialized(config: AppLovinSdkConfiguration) { // SDK初始化完成后,在这里初始化开屏广告的加载、管理逻辑 // 例如初始化AppOpenAdManager等相关类 if (BuildConfig.DEBUG) { sdk.showMediationDebugger() } } })
额外注意事项
- 所有广告加载相关操作(包括开屏广告预加载、展示逻辑)必须放在
onSdkInitialized回调之后执行,禁止提前触发。 - 冷启动时,首页Activity不要在
onCreate中直接加载广告,可通过LiveData、全局回调等方式,等待SDK初始化完成的通知后再执行加载。
内容的提问来源于stack exchange,提问作者sejn
相关产品推荐
相关产品推荐

