【问题标题】:Including compiled executables and libraries with gradle (android)包括使用 gradle (android) 编译的可执行文件和库
【发布时间】:2014-02-16 18:29:44
【问题描述】:

我已将以下内容添加到我的 build.gradle 以在我的 jni 文件夹中包含预编译的二进制文件和共享对象。

sourceSets {
  main {
     jniLibs.srcDir file('jni/')
  }
}

但是当我构建和检查 APK 时,会包含 .so 文件,但不包含二进制文件。 gradle 是否可以捆绑编译二进制文件?

【问题讨论】:

    标签: android android-ndk gradle android-gradle-plugin


    【解决方案1】:

    不,目标是存储安装时自动提取的 .so 文件。

    任何自定义的东西都应该放在你的资产文件夹中。

    【讨论】:

    • 那么...我应该将本机二进制文件放在 assets 文件夹中,然后在运行时复制它们,使其可执行并运行它们?
    • 这将是正确的方法,但我不确定它是否会起作用。您还需要手动找出设备的 ABI 并使用正确的二进制文件。
    • 是的,这似乎有点矫枉过正。我认为使用 gradle 任务将二进制文件包含在 apk 中的 libs 文件夹中会更好,就像以前的构建系统所做的那样(除非我错过了一些基本的东西?)
    • Ant 和 ADT 都不会打包除 .so 之外的任何东西
    • 这不可能,因为我有一个包含 FFMPEG 二进制文件 (libs/armeabi/ffmpeg) 的项目,该文件包含在最终的 apk (lib/armeabi/ffmpeg) 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2023-03-23
    • 2012-10-17
    • 2012-03-20
    相关资源
    最近更新 更多