【问题标题】:Include binary data file into APK file将二进制数据文件包含到 APK 文件中
【发布时间】:2015-11-30 12:59:28
【问题描述】:

我无法将二进制文件包含到 APK 文件中。

openwig 库包含一个从库代码加载的二进制数据文件 (stdlib.lbc)。

InputStream stdlib = getClass().getResourceAsStream("/cz/matejcik/openwig/stdlib.lbc");

过去我使用 Eclipse 构建项目 - 没有任何手工修改 - 一切都很好。二进制文件被加载并返回一个 InputStream 对象。 APK 文件在文件夹 cz\matejcik\openwig 下包含文件 stdlib.lbc。一切正常。

现在我尝试使用 Android Studio 1.3.2 构建项目,并且 APK 文件不再包含 APK 文件。当然,加载代码返回 null。

文件 stdlib.lbc 位于项目中的 \app\OpenWIGLibrary\src\matejcik\openwig 下。该文件也显示在 Android Studio 的项目树中。

我尝试通过 gradle 配置包含 stdlib.lbc,但没有成功,因为我之前从未编辑过 gradle 配置。 gradle 配置是否正确?如何通过 Android Studio 将二进制文件包含到 APK 文件中?

顺便说一句,我不想​​将stdlib.lbc移动到assets文件夹中,因为我想修改openwig库中的代码。

感谢您的帮助 AndroidNovize42

【问题讨论】:

    标签: android android-studio apk android-gradle-plugin assets


    【解决方案1】:

    您应该在标准文件中为他们提供资源:src/main/resources。如果您希望它们出现在给定的包中,只需按照您的包结构创建文件夹并将它们保留在那里。

    默认情况下,没有 gradle 显式配置,只从 src 文件夹中获取 java,编译然后 .class 文件由 maven/gradle 复制到目标包。

    其他方式可能是将您的文件添加到资产文件夹。

    【讨论】:

    • 感谢您的回答。但这不是我所期望的答案;-)。我将 stdlib.lbc 文件移动到 assets 文件夹并更改位置路径。它有效。但是有两点我对这个解决方案不太满意:首先我必须移动一个文件,其次必须从第三方库中更改代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2014-05-18
    • 2020-03-08
    • 1970-01-01
    • 2011-07-26
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多