在JNI文件夹中构建本机库?

时间:2014-08-30 13:25:26

标签: android eclipse android-ndk adt

我在Eclipse上测试Android上的JNI。

我有一个简单的Android项目,只有一个活动。在Eclipse的项目浏览器中,我补充说:

  • jni/文件夹
  • {li} Android.mkjni/文件夹中 {li} prng.cjni/文件夹中

源文件名为prng.c,因为它包含了Crypto ++的随机数生成器。 Crypto ++已经针对ARMv7进行了交叉编译,因此我有libcryptopp.so待命。

当我选择项目→构建项目时,不会构建库。我也确认它在清理完项目后还没有建成。

Android-PRNG$ find . -iname *.so
Android-PRNG$

问题:为什么Eclipse 构建共享对象?还有什么需要做的?


Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := prng
LOCAL_SRC_FILES := prng.c

include $(BUILD_SHARED_LIBRARY)

prng.c

它目前基本上是空的,因为我无法在调用本机方法的Java类文件上运行javah。我希望接下来解决这个问题。

#include <string.h>
#include <jni.h>

#include <cryptopp/osrandom.h>

static RandomNumberGenerator& GetPRNG()
{
    static AutoSeededRandomPool prng;

    return prng;
}

1 个答案:

答案 0 :(得分:2)

过去几年,ADT实际上非常容易;之前情况要糟糕得多。已预先安装链接post中描述的插件;你还需要

1安装NDK

2在Preferences/Android/NDK菜单

中设置其路径

3右击您的Android项目Android Tools/Add Native Support

......现在你已经准备好了。