Android Studio仅在带Play Store的Pixel/Nexus AVD运行出现超时
解决步骤
1. 捕获启动崩溃的完整日志
Run窗口仅输出启动超时是因为应用进程在启动阶段就异常退出,AS的部署工具没有捕获到崩溃栈,先按以下步骤拿完整报错:
- 启动对应带Play Store的AVD,先完成Play Store的谷歌账号登录,手动打开一次Play Store确认可以正常加载商店页面,保证Google Play Service处于正常运行状态
- 执行安装命令手动装包:
adb install <你的APK本地路径> - 安装完成后打开Android Studio的Logcat面板,过滤你的应用包名,再手动点击AVD里的应用图标启动,此时可以看到完整的崩溃栈信息,可直接定位具体报错点
2. Google Billing专项问题排查
绝大多数此场景的报错都和Billing SDK与Google Play Service的兼容性、初始化逻辑有关:
- 确认Billing SDK版本与Google Play Service版本匹配:Billing 5.x/6.x要求Google Play Service版本 >= 22.0.0,低版本AVD默认内置的Play Service版本普遍偏低,可打开AVD内的Play Store,搜索Google Play Service更新至最新版本后重试
- 调整BillingClient初始化逻辑:禁止在Application的
onCreate生命周期中同步初始化BillingClient,Play Service未完成启动时同步调用会阻塞主线程触发ANR,导致进程被系统直接销毁。可以改为在首页onWindowFocusChanged回调中异步初始化,或者初始化前先加Play Service可用性判断:
// Kotlin 示例判断逻辑 val apiAvailability = GoogleApiAvailability.getInstance() val resultCode = apiAvailability.isGooglePlayServicesAvailable(this) if (resultCode == ConnectionResult.SUCCESS) { // 异步初始化BillingClient }
- 检查依赖冲突:如果你同时引入了Google Service其他组件(比如Firebase、Google Sign-In),保证所有Google官方组件的版本号对齐,版本差异可能导致Play Service调用异常
3. 临时测试绕过方案
如果需要快速验证支付流程,可以先通过以下方式规避超时问题:
- 暂时关闭应用的debuggable配置,打未混淆的release包安装测试,debug模式下AS调试器附加超时会大概率触发该错误
- 更换API 30及以上的带Play Store的AVD测试,低版本API(如API 27及以下)的内置Play Service兼容性缺陷较多,高版本AVD的适配性更好
内容的提问来源于stack exchange,提问作者xv.ch
相关产品推荐
相关产品推荐

