今天学习jni的时候,捣鼓了很久,碰到2个错误困扰了一天。终于解决了,希望他人在学习Android jni时不要碰到我这样的错误。
- myjni.cpp:29:21: error: base operand of ‘->’ has non-pointer type ‘JNIEnv {aka _JNIEnv}’错误
错误原因:
(*env)->NewStringUTF(env, "Hello from JNI !");
这是c语言写法。
而c++的写法应该是:
env->NewStringUTF( "Hello from JNI !");
2.java.lang.UnsatisfiedLinkError: Couldn’t load myjni: findLibrary returned null.
解决方法:
在libs下新建一个armeabi-v7a或armeabi文件夹,然后将编译的myjni.so移动到该文件夹内。