You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android基准测试因ProfileInstaller库问题失败求助

解决方案

针对第一个错误:The baseline profile install broadcast was not received

这个问题的核心是主应用APK未正确集成ProfileInstaller库,按以下步骤排查修复:

  • 确认依赖添加位置:必须把androidx.profileinstaller:profileinstaller:1.3.1依赖添加到主应用模块(而非benchmark测试模块)的build.gradle中,示例配置:
    // 主模块build.gradle
    dependencies {
        implementation 'androidx.profileinstaller:profileinstaller:1.3.1'
        // 其他依赖项...
    }
    
  • 添加混淆规则:如果开启了R8/ProGuard,需在proguard-rules.pro中保留ProfileInstaller相关类,避免被混淆移除:
    -keep class androidx.profileinstaller.ProfileInstaller { *; }
    -keep class androidx.profileinstaller.ProfileInstallReceiver { *; }
    
  • 验证APK打包结果:构建主应用的release变体后,用Android Studio的APK Analyzer检查APK内是否包含androidx.profileinstaller包下的类,确认库已被正确打包。

针对第二个错误:The DROP_SHADER_CACHE broadcast was not received

即便使用了1.3.1版本,仍可能存在以下问题,逐一排查:

  • 统一依赖版本:确保benchmark模块和主应用模块使用的ProfileInstaller版本完全一致,避免版本冲突。可通过执行./gradlew app:dependencies查看依赖树,排除旧版本的间接引入。
  • 移除手动广播注册:1.3.0+版本的ProfileInstaller会自动在Manifest中注册ProfileInstallReceiver,如果你的AndroidManifest.xml中手动注册了该Receiver,需删除手动注册项,避免冲突。
  • 优化测试代码:在测试的setupBlock中增加短暂延迟,确保系统广播接收状态稳定,示例修改:
    setupBlock = {
        pressHome()
        Thread.sleep(1000) // 增加1秒延迟,等待系统状态稳定
    }
    
  • 检查设备系统版本:确保测试设备运行Android 11(API 30)及以上,旧系统对广播的处理逻辑存在限制,可能导致接收超时。

额外验证步骤

  • 运行基准测试前,先手动安装主应用的release变体,确认应用能正常启动。
  • 关闭设备的省电模式、后台应用限制等功能,确保ProfileInstaller的广播能正常被接收。

内容的提问来源于stack exchange,提问作者OnDWay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:52:49