我有一个带有本机库的eclipse项目,我需要将这个项目复制到另一台机器上。
我在那里处理这个项目文件夹,并使用现有代码中的“File-> New-> Android Project”。我还使用勾选“将项目复制到工作区”。
然后我转到jni文件夹,看到很多错误,如“未解决的包含:”,“类型'JNICALL'无法解析”,“方法'GetStringUTFChars'无法解决”,等等31个错误
我试图编译这个jni库。没问题。它已编译但我仍然看到我之前看到的所有错误。 我试图启动Android应用程序,它说我的项目包含错误。
此问题仅适用于本机库。
如何解决这个问题?
答案 0 :(得分:3)
转到项目专家>> C / C ++一般>>路径和符号以及添加:
"/home/ademar/android-ndk-r9/platforms/android-18/arch-arm/usr/include"
你也可以包括de x86和mips版本:
"/home/ademar/android-ndk-r9/platforms/android-18/arch-x86/usr/include"
"/home/ademar/android-ndk-r9/platforms/android-18/arch-mips/usr/include"
答案 1 :(得分:1)
当您遇到来自Eclipse的这些错误消息时,您应该只需转到“问题”视图并删除消息。清理构建项目,消息(希望)不会再出现。
有时候,需要采取更激进的措施,比如打开一个新工作区(简单删除项目+导回它可能还不够,因为删除时不会删除某些项目元数据)。
最后一种方法是转到项目属性,找到构建器标签,然后停用最后一个扫描程序配置构建器。不幸的是,这也将禁用“开放声明”和其他智能源导航功能。
答案 2 :(得分:1)
对于遇到类似问题的其他人,我遇到了这个错误,因为我将C风格的JNI调用复制到cpp
文件中。所以,如果您也是如此,请尝试更改
const char *utf8 = (*env)->GetStringUTFChars(env, filename, NULL);
到
const char *utf8 = env->GetStringUTFChars(filename, NULL);
然后清理/构建。