【问题标题】:Loading a native library for Android using Eclipse使用 Eclipse 为 Android 加载本机库
【发布时间】:2011-05-23 03:22:33
【问题描述】:

我对 Android 开发还很陌生,我已经尝试了一段时间,但我就是不明白。我正在为 android 编写一个创建 gif 的应用程序,为此我正在使用 this library。我将它编译成 .so 但现在我只是不明白如何实际加载它。我将 .so 放在 /libs/armeabi/ 中,但是当我像这样加载它时

    static {
        System.loadLibrary("gifflen");
    }    

它抛出

   ERROR/AndroidRuntime(13565): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gifflen: findLibrary returned null

我应该把它放在别的地方吗?或者这是因为我应该更改 Eclipse 中的某些设置? 我对 Java Build Path 中的本机库选项感到困惑,但这似乎不是我想要的。 我也用谷歌搜索了一下,发现一个答案说选择选择 Android 工具->添加本机支持,但我没有那个选项。

【问题讨论】:

    标签: java android eclipse android-ndk


    【解决方案1】:

    你内置到一个.so如何?使用 NDK?如果是这样,那么创建的文件应该被称为 libgrifflen.so。是吗?

    【讨论】:

    • 谢谢。出于某种愚蠢的原因,我将它从 libgifflen.so 重命名为 gifflen.so。我认为这无关紧要。
    • "你内置到一个.so怎么样?"请用英语重复一遍。
    • “你是如何将它构建成 .so 的?”我在问他使用什么工具来构建 .so。
    【解决方案2】:

    基本上,您需要告诉系统此类库的存在以及它的位置。这是在 Eclipse 中通过右键单击项目名称然后选择“Android 工具”然后选择“添加本机支持”来完成的。如果项目已经有本地支持,则不存在此选项 - 如果您是初学者,最好从头开始创建一个新项目。

    【讨论】:

    • 抱歉,我遇到了这个问题,但我找不到 Add "Native Support" 那里。
    • 天哪!这真是太好了!当我看到你的答案时,我一定已经阅读了UnsatisfiedLinkError 上的所有现有帖子,这很好。
    • 不,这不是答案。在 Eclipse 中选择“本机支持”与是否已打包 已构建 库无关。它仅允许您使用 eclipse(相对于其他东西)进行语言感知编辑并驱动 ndk 来 build 库 - 但这不是这里的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-07-08
    • 2019-02-03
    • 2012-08-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多