【问题标题】:Create an SDK (single jar file) with "so" files使用“so”文件创建 SDK(单个 jar 文件)
【发布时间】:2012-06-10 14:52:16
【问题描述】:

我应该创建一个易于使用的 SDK,所以我需要将它放在一个 jar 文件中。资源是有问题的,但是包含“.so”文件呢?这些文件是 NDK 创建的库(通常放在“libs/armeabi”文件夹中)?

是否可以将“.so”文件添加到jar文件中,这样使用SDK的jar文件的人就不需要将它们添加到他的项目中的libs文件夹中?

如果有,如何解决,如果没有,是否有任何解决方法?

澄清一下:任何使用 SDK 的人都应该只使用一个 jar 文件,该文件将包含使用 SDK 所需的所有内容,包括“.so”文件。

请注意,如果我将 libs 文件夹(以及其中的“.so”文件)放入使用 SDK 的项目中,它就可以正常工作。如果我将 SDK 项目用作 Android 项目,情况也是如此。

【问题讨论】:

    标签: android sdk android-ndk


    【解决方案1】:

    实际上这是Android 所做的,因为ADT 17 来了。事实上,当您创建一个library project 并将其导入另一个项目时,Android 会创建一个jar filenative library 也是如此。构建项目库时很简单,armeabi 文件夹也将包含在jar 中。

    【讨论】:

    • 这正是我所做的。我正在使用一个 android 库并打算只提供自动创建的 jar 。然而,即使“.so”文件在里面,它也会给我这个异常。它发生在我将 libs 文件夹设置为构建路径中的源时
    • 奇怪。通过构建路径将 libs 文件夹作为源文件夹后,我得到一个不同的错误,这次是在编译时:“库 'Library.jar' 包含不会在设备上运行的本机库。”
    • 我不明白。他们在那里说这是不可能的,不是吗?
    • 是的。实际上我已经看到它可以正常工作,正确导入和加载库。也许新广告发生了一些变化?现在,我的,只是猜测。可能真的不行
    • 似乎他们写过它在过去有效,但由于一些人犯了奇怪的错误,他们禁用了这个功能。显示此问题的另一个链接是:stackoverflow.com/questions/4882167/…。似乎可以达到 adt 12(或更少),但现在没有了。
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    相关资源
    最近更新 更多