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

不使用assets目录能否将非标准文件打包至APK的lib目录中

非标准文件嵌入APK lib目录实现方案

无插件原生实现方案

无需额外引入插件,直接修改Android项目模块级build.gradle配置即可实现需求:

  • 把目标Python目录加入jniLibs的源路径配置,打包工具会自动将路径下所有文件按照原有目录结构,直接打包进APK的lib目录下,逻辑和jni库打包完全一致:
android {
    // 保留你原有android块内的所有配置
    sourceSets {
        main {
            jniLibs {
                // 添加你的Python目录作为jniLibs的源目录
                srcDirs += "/somewhere/lib/python3.x"
            }
        }
    }

    // 若打包时触发非.so文件的过滤拦截,添加以下配置放开限制
    packagingOptions {
        jniLibs {
            // 按需调整保留规则,`**/*`代表保留目录下所有格式的文件
            keep("**/*")
        }
    }
}
  • 若不需要按CPU架构拆分Python文件,可直接在/somewhere/lib/python3.x下创建自定义子目录(比如命名为python_runtime)存放所有.py、.pyc等文件,打包后访问路径为lib/python_runtime/,安装后可直接通过App的nativeLibraryDir拼接路径读取,不需要额外解压操作。

可选插件方案

如果需要更复杂的定制化打包逻辑,可使用业内常用的Packer-NG等打包插件,通过配置自定义资源映射规则,即可将任意路径的非标准文件批量导入APK的lib目录,全程不需要操作assets目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:06:05