Android14之HIDL报错: No more HIDL interfaces can be added to Android. Please use AIDL.(一百九十五)

本文介绍了在Android14中使用HIDL接口遇到的报错,指出从Android10开始HIDL已被废弃,需使用AIDL替代。作者提供了删除特定代码以解除HIDL限制的解决方案,针对Android系统工程师和音视频开发者提供实用指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Android14添加HIDL接口报错: No more HIDL interfaces can be added to Android. Please use AIDL.

2.报错信息

  • FAILED: out/soong/bp2build_files_marker
    cd “KaTeX parse error: Expected 'EOF', got '&' at position 49: …soong_build")" &̲& BUILDER="PWD/KaTeX parse error: Expected 'EOF', got '&' at position 50: …soong_build")" &̲& cd / && env -…BUILDER” --top “$TOP” --soong_out “out/soong” --out “out” --bp2build_marke
  • r out/soong/bp2build_files_marker --globListDir bp2build_files --globFile out/soong/globs-bp2build_files.ninja -t -l - - out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong
  • .environment.used.bp2build_files Android.bp
    error: hardware/interfaces/led/1.0/Android.bp:4:9: module “android.hardware.xxx@1.0_interface”: name: No more HIDL interfaces can be added to Android. Please use AIDL.
  • 17:51:09 soong bootstrap failed with: exit status 1
  • failed to build some targets (4 seconds) ####

3.Android HIDL接口介绍

  • HIDL(Hardware Interface Definition Language)是Android系统中用于定义硬件接口的一种语言。它是一种基于IDL(Interface Definition Language)的语言,用于描述硬件模块的接口,使得不同的硬件模块能够通过接口进行通信。HIDL的出现,主要是为了解决硬件模块之间通信的兼容性和效率问题。
  • HIDL通过定义硬件模块的接口,将硬件实现细节抽象出来,使得硬件模块之间的通信不再直接依赖具体的硬件实现,而是通过接口进行。这样,硬件模块的开发和维护变得更加独立和简单,同时也提高了硬件模块的可移植性和可复用性。
  • HIDL的编译过程是将HIDL源文件编译成Java源文件,这些Java源文件可以被Android系统中的服务使用。这些服务通过Java代码实现硬件模块之间的通信,从而实现硬件模块的功能。
  • HIDL的优点在于,它提供了一种标准化的硬件接口定义方式,使得硬件模块之间的通信变得更加简单和高效。同时,HIDL也提高了硬件模块的可移植性和可复用性,使得硬件开发变得更加灵活和便捷。
  • 在Android系统中,HIDL主要用于定义和实现硬件模块之间的接口,例如音频、摄像头、传感器等。通过使用HIDL,Android系统能够更好地管理和控制各种硬件模块,提高了系统的稳定性和性能。

4.报错原因

从Android 10开始,HIDL 已废弃,Android 将在所有位置改用AIDL。

所以,Android10以后版本使用AIDL接口即可。

5.官方说明

在这里插入图片描述

6.第二种解决方案(直接开倒车)

# emacs system/tools/hidl/build/hidl_interface.go


func hidlInterfaceMutator(mctx android.LoadHookContext, i *hidlInterface) {
+    // if !canInterfaceExist(i.ModuleBase.Name()) {
+    //  mctx.PropertyErrorf("name", "No more HIDL interfaces can be added to Android. Please use AIDL.")
+    //  return
+    // }
.....
};  

删除以上代码可以解除Android10以后无法添加HIDL的限制.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值