You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建含自定义系统应用的AOSP时遇tensorflow-lite模块未定义错误

解决AOSP构建中TensorFlow Lite模块未定义的问题

问题根源

你使用的org.tensorflow:tensorflow-lite:+是Maven仓库的依赖格式,AOSP的Soong构建系统无法识别这种坐标,必须使用AOSP源码树内的模块名或本地预编译库引用。

解决方案

1. 确认AOSP中是否包含TensorFlow Lite源码

检查AOSP根目录下是否存在external/tensorflow目录:

ls external/tensorflow

如果不存在,需要将TensorFlow Lite源码引入AOSP:

  • 通过repo添加TF的manifest片段,或者手动克隆TF源码到external/tensorflow目录
  • 确保克隆的TF版本与你的AOSP版本兼容(比如Android 12对应TF 2.x版本)

2. 修正Android.bp中的依赖引用

打开external/tensorflow/lite/Android.bp,找到静态库的模块名(通常是libtensorflowlite或tensorflowlite_static),然后修改你的应用Android.bp:

static_libs: [
    "libtensorflowlite",
    "androidx.appcompat_appcompat",
    "com.google.android.material_material"
],

或者使用绝对路径引用更稳妥:

static_libs: [
    "//external/tensorflow/lite:libtensorflowlite",
    "androidx.appcompat_appcompat",
    "com.google.android.material_material"
],

3. 确保TF Lite库被纳入构建目标

在你的设备配置文件(比如device/<vendor>/<device>/device.mk)或产品配置文件(product/<vendor>/<product>/product.mk)中添加:

PRODUCT_PACKAGES += libtensorflowlite

这样可以确保TF Lite库被编译并打包到系统镜像中。

4. 预编译库替代方案(如果不想编译TF源码)

如果不想编译TF Lite源码,可以使用预编译的静态库:

  1. 将下载好的libtensorflowlite.a放到应用目录下的libs/x86_64(对应目标架构)
  2. 在应用的Android.bp中声明预编译静态库:
prebuilt_static_library {
    name: "libtensorflowlite_prebuilt",
    arch: {
        x86_64: {
            srcs: ["libs/x86_64/libtensorflowlite.a"],
        },
    },
}
  1. 修改应用的依赖为这个预编译库:
static_libs: [
    "libtensorflowlite_prebuilt",
    "androidx.appcompat_appcompat",
    "com.google.android.material_material"
],

验证

修改完成后,清理之前的构建缓存并重新构建:

make clean && lunch sdk_phone_x86_64 && make -j$(nproc)

内容的提问来源于stack exchange,提问作者razakma15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:52:38