fix_baidu_init | 基线:846f99b旧 Runtime 没有区分启动页的正式初始化请求与业务 Session 的等待请求。ensureReady(...) 能在未初始化状态创建不带在线许可证的模型任务;启动页随后只能加入该任务,自己的许可证参数没有生效,并继承了前一个任务已经消耗的超时时间。日志中的 -10001 是应用层 45 秒模型超时,不是厂商 SDK 原始错误码。
FaceRecognitionRuntime.initialize(context, license, callback)。READY 并通知等待者;失败进入 FAILED 并保存原错误。ensureReady(...):已就绪立即继续、初始化中加入等待、尚未启动返回 -10003、失败返回上次真实错误。STARTUP 与 SESSION_WAIT 请求类型。initialize(...) 成为唯一初始化入口,ensureReady(...) 只检查或等待。-10003,并保存最近一次真实失败信息。覆盖业务请求不抢初始化、启动页使用自己的许可证、共享启动任务、取消等待互不影响,以及失败后返回原错误且不偷偷重试。本次未修改启动页、Session、弹框、支付核销页面及原业务回调。
新增测试先在旧实现上失败,证明 ensureReady(...) 会错误启动模型;完成职责分离后转为通过。失败信息保留功能同样经历先失败再通过。
JAVA_HOME=/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home \ sh ./gradlew :app:testDebugUnitTest :app:assembleDebug
BUILD SUCCESSFUL,约 5 秒。git diff --check 通过;修改源码均为 UTF-8 无 BOM。构建仅保留项目既存的 flatDir、Build Tools、SDK namespace 和第三方 YNHAPI 字节码版本警告,本次没有新增编译失败。
-10000、-10001、-10003 与厂商真实错误码。未执行暂存、提交、推送,也未创建或切换分支。