0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3566 Android15去掉repo后编译报错?一招enabled: false搞定

jf_44130326 来源:Linux1024 作者:Linux1024 2026-05-26 16:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

适用场景:Rockchip RK3566 + Android 15平台,移除repo多仓库管理后编译中断问题

RK3566 Android15开发的同学大概率都遇到过:把官方SDKrepo多仓库改成单体仓库后,编译直接报错,明明代码没改几行,却卡在各种测试模块的依赖缺失上。今天就把这个问题的根因、解决方案和避坑要点一次性讲透。

wKgZPGoUI32Acb0OAAAR8PK1H64696.png

一、为什么要跟repo说再见?

Rockchip官方SDKGooglerepo工具管理上百个Git仓库,看似模块化,实则对小团队极不友好:

初始化同步动辄几十GB,网络差的时候同步半天还容易断;

多仓库分散管理,定制产品时改了A仓库漏了B仓库是家常便饭;

CI/CD流水线搭建复杂,新人上手光理解repo流程就得好几天。

所以很多团队都会选择把SDK “扁平化:删掉.repo目录,整合成一个单体仓库,从此告别repo sync。但问题也随之而来——编译报错了。

二、报错的核心原因:依赖的仓库消失了

编译系统(Soong/Blueprint)在解析阶段会扫描所有Android.bp文件,哪怕是平时用不到的测试模块,只要它引用了其他repo仓库的文件,而这些仓库已经被删掉,就会直接报错退出。

最典型的就是external/skia/Android.bp里的CtsSkQPTestCases模块:
这个CTS测试模块依赖了platform/cts仓库的cts_defaults配置,去掉repoplatform/cts仓库没了,Soong解析时找不到依赖,自然就卡壳了。

简单说:这是个别人家仓库的模块,你没拉人家的代码,编译系统却硬要去构建,不报错才怪。

三、三种解决方案,推荐第一种

方案1:直接加enabled: false(最推荐)

在报错模块的Android.bp中添加一行enabled: false

android_test { name:"CtsSkQPTestCases", team:"trendy_team_android_core_graphics_stack", enabled:false, // 关键:屏蔽这个模块 defaults: ["cts_defaults"], test_suites: [   "general-tests",   "mainline-tests",  ],  ...}

这是最干净的做法,Soong在解析阶段就会跳过该模块,既不影响其他模块,也不会留下后遗症。

方案2:产品配置中排除(有局限性)

device/rockchip/xxx/[BoardConfig.mk](BoardConfig.mk)中添加:

PRODUCT_PACKAGES-= CtsSkQPTestCases

注意:这个方案只在编译阶段生效,如果Soong解析阶段就因为文件不存在报错,此方法无效。

方案3:条件编译(适合复杂场景)

android_test { name:"CtsSkQPTestCases", enabled: $(WITH_CTS_TESTS), // 通过环境变量控制}

适合需要在不同构建变体中切换的场景,但对单纯去掉repo的需求来说,属于杀鸡用牛刀

四、避坑关键:这些细节一定要注意

1.不止Skia,要全面排查

去掉repo后,所有依赖外部仓库的测试模块都可能出问题,重点检查这些类型:

模块类型

典型路径

依赖仓库

CTS测试

external/*/Android.bp中的android_test

platform/cts

GTS/VTS测试

各模块的android_test

platform/gtsplatform/vts

vendor测试

hardware/*/tests

vendor仓库

可以用这个命令快速扫描:

grep -rn"enabled.*false"--include="*.bp"external/ |head

对比官方SDK,找出未被禁用的测试模块逐一处理。

2.别直接删模块,留一线生机

千万不要图省事删除模块定义!原因很实在:

后续上游更新时容易产生冲突;

万一哪天要重新用repo,恢复模块比重新写简单多了;

保留原始代码+ enabled: false,是最小侵入式修改,方便后续追踪。

3.注意CTS认证的影响

如果项目需要过Google CTS/GMS认证,这些测试模块是必须的。要么单独拉回platform/cts仓库,要么在认证时切回repo模式编译。

4.分清Soong的两个阶段

解析阶段:扫描Android.bp,构建依赖图,文件不存在会直接报错(PRODUCT_PACKAGES -=没用);

编译阶段:实际编译模块,PRODUCT_PACKAGES -=只在这个阶段生效。
这也是为什么enabled: false是最安全的——它直接跳过了解析阶段。

五、总结

核心结论

具体说明

报错根因

去掉repo后,模块依赖的外部仓库不存在,Soong解析失败

最优解

Android.bp中给报错模块加enabled: false

排查重点

CTS/GTS/VTS测试模块、引用外部defaults的模块

最佳实践

禁用模块而非删除,保留可恢复性

去掉repo确实简化了开发流程,但也意味着我们要自己维护SDK边界。及时屏蔽这些用不到的外部依赖模块,才能让编译一路畅通。

如果你的RK3566 Android15项目也遇到了类似问题,不妨试试这个方法,欢迎在评论区交流更多踩坑经验~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    4043

    浏览量

    134851
  • 编译
    +关注

    关注

    0

    文章

    698

    浏览量

    35349
  • Rockchip
    +关注

    关注

    0

    文章

    95

    浏览量

    19699
  • RK3566
    +关注

    关注

    0

    文章

    162

    浏览量

    6870
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3566 Android 适配踩坑:AB 分区未适配引发开机分区缺失,设备无法进入系统

    在瑞芯微 RK3566 平台 Android 系统定制开发过程中,GKI 内核搭配 AB 双分区升级机制是新版固件常用架构,但 硬件分区表未同步适配 时,盲目开启 AB 镜像模式极易触发启动异常
    的头像 发表于 05-26 09:41 212次阅读
    <b class='flag-5'>RK3566</b> <b class='flag-5'>Android</b> 适配踩坑:AB 分区未适配引发开机分区缺失,设备无法进入系统

    RK3576 Android15 框架扩展— RkAi 架构篇

    在 Rockchip RK3576 平台的 Android 定制框架中,RkAi 子系统是核心的 AI 能力扩展模块。本文将从架构设计、文件职责、启动流程、接口设计等维度,完整拆解 RkAi 子系统
    的头像 发表于 05-13 08:09 522次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>Android15</b> 框架扩展— RkAi 架构篇

    rk3576 android15平台camera编译配置都做了什么?

    该文件是瑞芯微(Rockchip)Android平台下相机子系统的核心编译配置Makefile,属于Android Build System的关键组成部分,作用是根据编译环境的动态条件
    的头像 发表于 03-06 17:15 3304次阅读
    <b class='flag-5'>rk</b>3576 <b class='flag-5'>android15</b>平台camera<b class='flag-5'>编译</b>配置都做了什么?

    RK3576 Android15音频开发必看:alsa_route核心文件解析与修改场景

    HAL层的核心。今天我们就聊聊: 什么情况下需要动这两个文件?遇到问题该怎么改? 、先搞懂:alsa_route到底是什么? 在RK3576 Android15
    的头像 发表于 02-26 08:08 497次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>Android15</b>音频开发必看:alsa_route核心文件解析与修改场景

    搞定RK平台Wi-Fi/BT调试!从配置到问题解决全攻略

    专用芯片,Wi-Fi/BT 的稳定运行直接影响产品体验。本文从配置、编译、测试到问题排查,手把手带你搞定 RK 平台 Wi-Fi/BT 调试。
    的头像 发表于 02-09 16:57 3347次阅读
    <b class='flag-5'>一</b>文<b class='flag-5'>搞定</b><b class='flag-5'>RK</b>平台Wi-Fi/BT调试!从配置到问题解决全攻略

    初次编译rk3568(rk3576)Linux 6.1内核踩坑记录:从报错终止到成功解决的完整流程

    很多刚接触瑞芯微 rk 系列芯片开发的小伙伴,在初次编译基于 Linux 6.1 内核的系统时,很容易因为环境依赖问题卡壳。最近我在编译 rk3576(
    的头像 发表于 02-06 16:47 3498次阅读
    初次<b class='flag-5'>编译</b><b class='flag-5'>rk</b>3568(<b class='flag-5'>rk</b>3576)Linux 6.1内核踩坑记录:从<b class='flag-5'>报错</b>终止到成功解决的完整流程

    RK3568 Android11编译环境搭建及报错解决指南

    在嵌入式开发领域,RK3568 芯片凭借其出色的性能被广泛应用。基于 RK3568 进行 Android11 系统的开发,首先要搭建好编译环境。本文将详细介绍在 Ubuntu20.04
    的头像 发表于 02-04 17:37 2360次阅读
    <b class='flag-5'>RK</b>3568 <b class='flag-5'>Android</b>11<b class='flag-5'>编译</b>环境搭建及<b class='flag-5'>报错</b>解决指南

    RK3576+Android15+Linux6.1调试EM05 4G模块全记录:从底层到上层的踩坑与破局

    )服务。最近我们在 RK3576 开发板 + Android15 系统 + Linux6.1 内核 环境下调试EM05 4G 模块 时,就遇到了从“RIL 起不来” 到 “库缺失” 再到 “上层功能未开” 的系列问题。今天就把
    的头像 发表于 02-03 15:27 3835次阅读
    <b class='flag-5'>RK3576+Android15</b>+Linux6.1调试EM05 4G模块全记录:从底层到上层的踩坑与破局

    硬核进阶:RK3576 Android15 驱动与系统开发实战指南

    android15,想与大家探讨更多,不仅仅是驱动,更包含android其他方面。 各位嵌入式与Android开发的朋友们,我们的  RK3576
    的头像 发表于 01-26 22:29 929次阅读
    硬核进阶:<b class='flag-5'>RK</b>3576 <b class='flag-5'>Android15</b> 驱动与系统开发实战指南

    技术分享 | RK3506如何交叉编译frp wireguard

    RK3506拥有着不错的性价比以及与之相匹配的性能优势,非常适合用来做边缘计算网关、小型数据收集端点等。今天给大家带来两款内网穿透工具的交叉编译移植,方便在RK3506上搭建相关应用。在编译
    的头像 发表于 12-25 17:29 898次阅读
    技术分享 | <b class='flag-5'>RK</b>3506如何交叉<b class='flag-5'>编译</b>frp wireguard

    智能楼宇改造避坑指南:别再换掉所有老设备!一招搞定ETHERNET/IP转DEVICENET的共存难题

    智能楼宇改造避坑指南:别再换掉所有老设备!一招搞定ETHERNET/IP转DEVICENET的共存难题 1. 项目背景:老旧楼宇的智能化挑战 在现代智能楼宇控制系统中,我们常面临新旧设备混合的复杂
    的头像 发表于 12-17 15:35 399次阅读
    智能楼宇改造避坑指南:别再换掉所有老设备!<b class='flag-5'>一招</b><b class='flag-5'>搞定</b>ETHERNET/IP转DEVICENET的共存难题

    性能跃迁,鸿蒙开发新纪元!凌羽派RK3566鸿蒙开发板,开启全场景开发之旅

    【导语】还在为鸿蒙开发寻找强劲、稳定、高效的硬件平台?凌羽派RK3566鸿蒙开发板震撼登场!集高性能、全接口、强生态于身,专为鸿蒙开发者、创客、企业与教育科研打造,助你轻松驾驭万物互联时代。
    的头像 发表于 12-11 17:58 2840次阅读
    性能跃迁,鸿蒙开发新纪元!凌羽派<b class='flag-5'>RK3566</b>鸿蒙开发板,开启全场景开发之旅

    【HZ-RK3568开发板免费体验】HZ-RK3568开发板操作系统编译

    、问题处理 编译HZ-RK3568开发板操作系统遇到的主要问题有: 1、软件模块缺失,这个好搞定,直接sudo apt ……即可; 2、live-build与bullseye兼容问题,这个网路上很多解决方法,
    发表于 08-17 09:15

    硬核上车!RK3576基于Ubuntu部署ROS机器人系统详细攻略(下)

    3562、RK3566RK3568、RK3576、RK3588等Arm64位芯片平台,各型号触觉智能均有配套核心板及开发板,实现了百分百全国产。常见
    的头像 发表于 07-11 18:34 4007次阅读
    硬核上车!<b class='flag-5'>RK</b>3576基于Ubuntu部署ROS机器人系统详细攻略(下)

    硬核上车!RK3576基于Ubuntu部署ROS机器人系统详细攻略(上)

    本文适用于瑞芯微RK3562、RK3566RK3568、RK3576、RK3588等Arm64位SoC,适配开发ROS2系统。各型号触觉智
    的头像 发表于 07-03 18:45 3239次阅读
    硬核上车!<b class='flag-5'>RK</b>3576基于Ubuntu部署ROS机器人系统详细攻略(上)