ERROR: xx @1.0 is not Java compatible. The Java backendoes NOT support Android.bp gen_java: true 报错

文章描述了一次构建过程中Ninja文件生成失败的情况,主要原因是Java不支持uniontypes和多维数组,特别是nativehandles的存在。通过检查并修复.HAL文件中的memory数据结构,移除nativehandle后解决了编译问题。

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

No need to regenerate ninja file
No need to regenerate ninja file
[ 50% 1/2] glob vendor/qcom/hardware/interface/fsensor/1.0/src
[  3% 2/65] //vendor/qcom/hardware/interface/fsensor/1.0:vendor.qcom.hardware.fsensor-V1.0-java_gen_java generate
FAILED: out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/IHwfsensor.java out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/IHwfsensorCallback.java out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/AudioBuffer.java out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/MessageQueueFlagBits.java out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/Result.java
out/soong/host/linux-x86/bin/sbox --sandbox-path out/soong/.temp --output-root out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen -c 'out/soong/host/linux-x86/bin/hidl-gen -d __SBOX_DEPFILE__ -o __SBOX_OUT_DIR__ -Ljava -randroid.hidl:system/libhidl/transport -rvendor.qcom.hardware:vendor/qcom/hardware/interface/ vendor.qcom.hardware.fsensor@1.0' --depfile-out out/soong/.intermediates/vendor/qcom/hardware/interface/fsensor/1.0/vendor.qcom.hardware.fsensor-V1.0-java_gen_java/gen/vendor/qcom/hardware/fsensor/V1_0/IHwfsensor.java.d __SBOX_OUT_DIR__/vendor/qcom/hardware/fsensor/V1_0/IHwfsensor.java __SBOX_OUT_DIR__/vendor/qcom/hardware/fsensor/V1_0/IHwfsensorCallback.java __SBOX_OUT_DIR__/vendor/qcom/hardware/fsensor/V1_0/AudioBuffer.java __SBOX_OUT_DIR__/vendor/qcom/hardware/fsensor/V1_0/MessageQueueFlagBits.java __SBOX_OUT_DIR__/vendor/qcom/hardware/fsensor/V1_0/Result.java
ERROR: vendor.qcom.hardware.fsensor@1.0 is not Java compatible. The Java backend does NOT support union types nor native handles. In addition, vectors of arrays are limited to at most one-dimensional arrays and vectors of {vectors,interfaces} are not supported.
ERROR: output handler failed.
sbox command (out/soong/host/linux-x86/bin/hidl-gen -d out/soong/.temp/sbox255028489/vendor/qcom/hardware/fsensor/V1_0/IHwfsensor.java.d -o out/soong/.temp/sbox255028489 -Ljava -randroid.hidl:system/libhidl/transport -rvendor.qcom.hardware:vendor/qcom/hardware/interface/ vendor.qcom.hardware.fsensor@1.0) failed with err "exit status 1"

[  7% 5/65] //vendor/qcom/hardware/interface/fsensor/1.0:vendor.qcom.hardware.fsensor@1.0-adapter-helper_genc++_headers generate
ninja: build stopped: subcommand failed.
10:27:27 ninja failed with: exit status 1

#### failed to build some targets (19 seconds) ####

编译命令加上参数 shoucommands  后可以发现是某个java 文件未生成,检查改该未生产的java 文件依赖后发现,.hal 文件里使用了一个 memory 类型的数据结构体,细看这个是各包含有native handle的街头提去掉后重新编译即可,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值