Type ‘*****‘ could not be resolved
Method ‘******‘ could not be resolved 等等很多诸如此类的错误
解决方法:
是由于没有将jni.h导入的缘故,而这个文件在ndk的目录下面。
所以,参照以下步骤:
Project Properties -> C/C++ General -> Path and Symbols 选择include标签,Add -> $Android_NDK_HOME/platforms/android-**/arch-arm/usr/include 且选中All languages. 最后Apply -> OK 这样错误就解决了。
如果添加了头文件还是问题,那可能是因为工程是C++工程,但代码是用的C风格的代码
1、如果不是.cpp文件,看一下NDK层的函数名是否正确,一般为 Java_包名_主Activity名_函数名
如包名为: com.test.abc, 主Activity为: MainActivity 声明的本地函数名为: Mytest
NDK层的函数名应该就是 Java_com_test_abc_MainActivity_Mytest
2、如果是 .cpp 文件, 则用 extern "C" {"方法在这里"},大括号里是本地方法,学习下javah生成的头文件。
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jbyteArray JNICALL Java_com_example_myeclipsejni_MainActivity_Mydecrypt
(JNIEnv *ent, jobject obj, jbyteArray paramArrayOfByte, jstring paramString)
{
//code
}
#ifdef __cplusplus
}
#endif