android NDK中的常见问题

今天配置了NDK,偿试一下怎么调用so库文件,中间有几个常见的小错误很容易忽略,特别在此说明。

#include <string.h>
#include <jni.h>
jstring Java_com_gcx_ndkjni_HelloNdkJni_stringFromNDKJNI( JNIEnv* env,jobject thiz )
{
    return (*env)->NewStringUTF(env, "Hello from NDK JNI !");
}

以上面的代码为例来说明,其实主要是这个C语言函数的名字的问题。

Java_com_gcx_ndkjni_HelloNdkJni_stringFromNDKJNI
其中Java都要加上的,后面的_com_gcx_ndkjni为我们创建的安卓工程的包名,HelloNdkJni是调用System.loadLibrary(..)方法的类名,_stringFromNDKJNI才是这个函数的名字,这几个组成部分一个都不能少,我刚开始就忽略这个问题,耽误了好多时间,希望后来者能够以此为戒。

你可能感兴趣的:(android NDK中的常见问题)