HIDL接口修改后编译报错问题

HIDL接口文件修改后,会提示hash不匹配的问题,

例如下面的提示:

ERROR: android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint has hash e21385ffc342a7c28276fbf3b26f8c191400f84ebc9ebd879ef8e4c5358a635c which does not match hash on record. This interface has been frozen. Do not change it!

解决办法:

把提示中的hash值复制一份“e21385ffc342a7c28276fbf3b26f8c191400f84ebc9ebd879ef8e4c5358a635c”,然后找到current.txt,打开后找到对应类型对应的hash替换即可。

current.txt位置:hardware\interfaces

帮你就到这里,本文结束。

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要添加HIDL接口,你需要按照以下步骤进行操作: 1. 创建一个新的HIDL接口文件,它应该包含你想要添加的新接口的定义。例如,如果你想添加一个名为“IMyInterface”的新接口,则应该创建一个名为“IMyInterface.hidl”的文件。 2. 在该文件中定义你的接口方法,例如: ``` interface IMyInterface { void myMethod(int32_t arg1, int32_t arg2); }; ``` 这将定义一个名为“myMethod”的方法,它接受两个整数参数。 3. 在你的HIDL服务中实现新接口方法。这通常涉及创建一个新的C++类来实现你的接口,并将其添加到你的服务中。 4. 在你的服务的main函数中注册新的接口。这可以通过调用registerAsService函数来完成,例如: ``` sp<IMyInterface> myInterface = new MyInterfaceImpl(); status_t status = myInterface->registerAsService(); if (status != OK) { ALOGE("Could not register MyInterface service (%d).", status); return -1; } ``` 这将创建一个名为“MyInterface”的服务,并将其注册到系统服务管理器中。 5. 在你的客户端应用程序中使用新接口。这通常涉及使用getService函数获取对接口的引用,并调用其方法。例如: ``` sp<IMyInterface> myInterface = IMyInterface::getService(); if (myInterface == nullptr) { ALOGE("Could not get MyInterface service."); return -1; } myInterface->myMethod(42, 24); ``` 这将获取名为“MyInterface”的服务的引用,并调用其“myMethod”方法,将42和24作为参数传递。 以上是添加HIDL接口的基本步骤,你可以根据你的具体需求进行修改

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值