Android 编译错误:module xxx1 missing dependencies:xxx

Android 编译错误:missing dependencies

  • 1. 编译错误log
  • 2. 分析方向
    • 2.1 缺少依赖库
    • 2.2 缺少sdk_version:
    • 2.3 缺少响应的 lib下so库

1. 编译错误log

echo "module netd_client_example missing dependencies: libnetd_client{os:android
,image:vendor.34,arch:arm64_armv8-a-branchprot_kryo300,sdk:,link:shared}" && false

2. 分析方向

2.1 缺少依赖库

添加依赖库

    shared_libs: [
        "liblog",
        "libbinder",
        "libutils",
        "libcutils",
        "libcurl",
        "libbase",
        "libnetd_client"
    ],

2.2 缺少sdk_version:

cc_binary {
    name: "netd_client_example",
    srcs: ["main.cpp"],
    defaults: ["hidl_defaults"],
    vendor: true,
    sdk_version: "current",

原因:

  1. 最近在调查时发现,如果vendor分区的库或bin依赖了system分区的库时,会有此报错,原因是构建系统不允许在供应商模块和框架模块之间建立依赖关系,并且构建系统会在以下情况下发出错误:

    • 未设置 vendor:true 的模块依赖于设置了 vendor:true 的模块,或
    • 设置了 vendor:true 的模块依赖于既未设置 vendor:true 也未设置 vendor_available:true 的非 llndk_library 模块。

    因此我们可以检查是否有跨分区的依赖,检查是否可以通过添加vendor:true在不影响功能的情况解决跨分区依赖问题

  2. Android 11 取消了 product 分区捆绑,使其独立于 system 和 vendor 分区。构建时,Make 和 Soong 将通过检查 platform_apis 和 sdk_version 字段来验证 product 分区中的 Java 模块是否不使用隐藏 API。product 分区中应用的 sdk_version 必须填写 current、system_current 或 API 的数字版本,platform_apis 字段必须为为空。

2.3 缺少响应的 lib下so库

根据第一步中添加依赖库查找out目录下 out/xxx/lib 已经out/xx/lib64 是否存在响应的so库

cc_binary {
    name: "rtkethernet_client",
    defaults: ["hidl_defaults"],
    srcs: ["Test.cpp"],
 
    shared_libs: [
        "liblog",
        "libhardware",
        "libhidlbase",
        "libhidltransport",
        "libutils",
		"libui",
    ], 
}

比如上面编译错误,查看后发现 只有out/xxx/vendor/lib/android.hidl.base@1.0.so 而lib64下没有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/583420.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blender曲线操作

1.几种常见建模方式 -多边形建模:Blender,C4D,3DsMax,MaYa -曲线: -曲面:Rhino(Nurbs) -雕刻:Blender,ZBrush -蜡笔:Blender 1)新…

【Linux】dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found

[30116] Error loading Python lib /tmp/_MEIlvdUu6/libpython3.8.so.1.0: dlopen: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found (required by /tmp/_MEIlvdUu6/libpython3.8.so.1.0)1 cd到指定路径 cd /usr/local 2 下载 wget http://ftp.gnu.org/gnu/gl…

电影交流|基于SprinBoot+vue的电影交流平台小程序系统(源码+数据库+文档)

电影交流平台目录 目录 基于SprinBootvue的电影交流平台小程序系统 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 电影信息管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取…

Python自学篇3-PyCharm开发工具下载、安装及应用

一、Python开发工具 自学篇1中讲到了安装Python之后出现的几个应用程序,其中IDLE、Python.exe都可以用来编写python程序,也可以进行调试;但是比较基础,比较原始,调试不方便,界面也不友好,需要更…

Apache Seata AT 模式事务隔离级别与全局锁设计

title: 详解 Seata AT 模式事务隔离级别与全局锁设计 author: 张乘辉 keywords: [Seata、分布式事务、AT模式、Transaction、GlobalLock] description: Seata AT 模式的事务隔离是建立在支事务的本地隔离级别基础之上的,在数据库本地隔离级别读已提交或以上的前提下…

八_实验1:创建 VLAN 和划分端口

1、实验目的 通过本实验可以掌握: VLAN的概念。创建VLAN的方法。把交换机端口划分到VLAN中的方法。 2、实验​​​​​​拓扑 创建 VLAN 和划分端口的实验拓扑如下图所示。 图8-5 创建 VLAN 和划分端口的实验拓扑 3、实验步骤 (1)实验准…

力扣-有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…

AI图书推荐:基于AI的商业数据分析应用

《基于AI的商业数据分析应用》(AI-Based Data Analytics: Applications for Business Management)的作者是Kiran Chaudhary、 Mansaf Alam。 本书涵盖了与营销和商业分析相关的各种主题。它探讨了组织如何通过使用数据分析及时做出更好的决策来增加利润。…

verilog分析task的接口设计,证明这种写法:assign {a,b,c,d} = links;

verilog分析task的接口设计,证明这种写法:assign {a,b,c,d} links; 1,task在状态机中的使用好处:2,RTL设计3,测试testbench4,波形分析,正确! 参考文献: 1&am…

蓝牙核心规范(core Specification)与应用规范(Profile)

加zkhengyang可申请加入蓝牙音频研究开发交流答疑群(课题组),赠送实际蓝牙耳机项目核心开发资料, 我们看到的大部分资料对于蓝牙协议分层一般是核心规范。 射频,基带,链路管理属于蓝牙硬件模块(一般由硬件实现比如FPGA) 逻辑链…

MongoDB数据库迁移的两种办法

在做系统运维时,经常需要对数据库进行迁移,今天这里分享一下MongoDB数据库数据迁移的办法。两种方法 方法1 利用NoSQLBooster for MongoDB直接复制粘贴 这种方法,适合在windows电脑上,可以直接访问原始和目标两个MongoDB库的。优…

Burp自定义插件实现请求拦截

在安全测试时,经常需要对请求进行拦截以及配置管理,以便过滤域名或路径的请求。例如:被测对象会不断收集信息(例如IP地址、设备信息)通过HTTP传给服务端。本文将介绍如何使用Burp Suite的扩展插件,通过开发…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容,Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion,是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布,主要用于根据文本的描述产生详细图像&…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好,我是程序员大猩猩。 上次我们实践了,Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一) 那么今天我们做一下web vue端的是如何来实现…

android studio拍照功能问题解决

1.点击拍照功能直接闪退 2.拍照后不能选择确认键,无法保存 上述是在android studio做项目中经常会使用到模拟器或真机的拍照功能时主要遇到的两个问题。 解决方法: 1.直接闪退问题: if(Build.VERSION.SDK_INT>Build.VERSION_CODES.N)…

谈谈进些年的BLE开发项目

加zkhengyang可申请加入蓝牙音频研究开发交流答疑群(课题组) 最早接触BLE项目是在做一款女性按摩器产品上,所谓的生活用品,用的是TI CC2640,资料齐全,上手快,配合手机app通讯开发,当然这个是单模的蓝牙芯…

学习C语言的指针

有一阵没更新了,因为最近比较繁忙,所以更新比较慢,还在慢慢学习 话不多说,开始今天的内容,聊一聊C语言指针。 很多小伙伴可能会被指针这个名字吓到,觉得很难,实际上确实有点难,但是…

cesium教程

环境搭建 vscode安装Visual Studio Code - Code Editing. Redefined nodejs安装Node.js — Run JavaScript Everywhere cesium源码下载编译 cesium官网下载源码https://cesium.com/downloads/ 解压下载的源码 VsCode打开远吗,找到index.html,右键打开 Open wit…

职场人是如何被拉开差距的?

事实上,职场人的差距从第一天就拉开了。 心理学里有一个词,叫做“首因效应,说的是人们在第一次接触时形成的印象,将会决定后续认知的基调。 入职第一天,从自我介绍开始,展示自己的特长,给大家…

unity项目《样板间展示》开发:菜单界面

unity项目《样板间展示》开发:菜单界面 前言UI菜单创建逻辑实现结语 前言 这是这个项目demo教程的最后一节,这节是菜单界面部分的创建 UI菜单创建 创建一个新的场景,在Scene文件中右键选择Create->Scene,创建新的场景 在场景…
最新文章