我有一个NDK库和相应的Java类的工作实现。但我用ndk方法得到错误... 我使用Android studio 1.5 gradle 2.8实验:0.4.0
我的代码是......
#include <jni.h>
#include <string.h>
jstring Java_com_example_shivlabs_ndktest_MainActivity_HelloWorld(JNIEnv* env,jobject obj)
{
return (*env)->NewStringUTF(env,"HelloWorld");
}
以上是My ndktest.c文件。
当我声明本机方法时,我得到错误。错误是报告Java中的本机方法声明,其中没有在项目中找到相应的JNI函数。
public class MainActivity extends AppCompatActivity
{
public native String HelloWorld();
static
{
System.loadLibrary("ndktest");
}
}
怎么解决呢????
答案 0 :(得分:0)
不确定您的目录结构是什么样的,但您的方法签名看起来是正确的。
但我认为您忘记了方法上面的以下声明。
JNIEXPORT jstring JNICALL
所以你的方法应该是这样的:
JNIEXPORT jstring JNICALL
jstring Java_com_example_shivlabs_ndktest_MainActivity_HelloWorld(JNIEnv* env,jobject obj)
{
return (*env)->NewStringUTF(env,"HelloWorld");
}