跳到主要内容

错误码

ltv_run()、句柄创建和返回结构体的接口外,公开 API 使用 ltv_error_t 返回结果。

错误码含义常见原因
LTV_OK成功操作已接受或完成
LTV_ERR_INVALID_ARG参数无效空句柄、空字符串、结构体版本错误、尺寸非法
LTV_ERR_INVALID_STATE当前状态不允许Runtime 生命周期错误、View 已关闭、存在未释放 frame
LTV_ERR_WRONG_THREAD线程错误未在调用 ltv_run() 的线程执行 API
LTV_ERR_LOAD_FAILED加载启动失败URL 或 HTML 无法提交给 View
LTV_ERR_JS_EXCEPTIONJavaScript 执行失败脚本异常或结果无法序列化为 JSON
LTV_ERR_IOI/O 失败PNG 文件无法写入等
LTV_ERR_INTERNAL内部错误原生 surface 或运行时内部操作失败
LTV_ERR_UNSUPPORTED功能不支持当前平台或 delivery mode 未实现
LTV_ERR_RESOURCE_EXHAUSTED资源不足内存或内部资源分配失败

处理原则

const ltv_error_t result = ltv_view_navigate(view, url);
if (result != LTV_OK) {
LogLitheViewError("navigate", result);
}
  • 不要忽略初始化、attach、resize、导航和销毁的返回值。
  • INVALID_ARG 通常是调用契约错误,应在开发阶段直接修正。
  • INVALID_STATE 需要结合生命周期、未决异步请求和 GPU frame lease 排查。
  • WRONG_THREAD 不应通过重试解决,应修正任务投递边界。
  • UNSUPPORTED 不会自动降级;宿主应选择已支持的能力或明确禁用功能。

JavaScript 错误

ltv_view_eval() 把详细错误放在 ltv_eval_result_t.error 中。无论成功或失败,都应释放两个可拥有字段:

ltv_eval_result_t result = ltv_view_eval(view, script);
if (result.code != LTV_OK) {
LogError(result.error);
}
ltv_free(result.json_result);
ltv_free(result.error);