3

我有一个带有本机库的 Eclipse 项目,我需要将此项目复制到另一台机器上。

我在那里处理这个项目文件夹并使用“File->New->Android Project from Existing Code”。我还使用勾选“将项目复制到工作区”。

然后我转到 jni 文件夹,看到很多错误,例如“未解决的包含:”、“无法解决类型 'JNICALL'”、“无法解决方法 'GetStringUTFChars'”等 31 个错误。

我试图编译这个 jni 库。没问题。它已经编译,但我仍然看到我之前看到的所有错误。我试图启动 android 应用程序,它说我的项目包含错误。

此问题仅与本机库有关。

如何解决这个问题?

4

3 回答 3

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"
于 2013-09-23T18:44:56.517 回答
1

对于遇到类似问题的其他人,我遇到了这个错误,因为我将 C 风格的 JNI 调用复制到了一个cpp文件中。因此,如果您也是这种情况,请尝试更改

const char *utf8 = (*env)->GetStringUTFChars(env, filename, NULL);

const char *utf8 = env->GetStringUTFChars(filename, NULL);

然后清理/构建。

于 2014-02-09T05:31:32.480 回答
1

当您遇到来自 Eclipse 的这些错误消息时,您应该简单地转到“问题”视图并删除这些消息。清理构建项目,并且消息(希望)不会再次出现。

有时,需要更激进的措施,例如打开一个新工作区(简单的删除项目 + 将其导入可能还不够,因为删除时不会删除一些项目元数据)。

最后的手段是转到项目属性,找到Builders选项卡,然后禁用最后一个Scanner Configuration Builder。不幸的是,这也会禁用“开放声明”和其他智能源导航功能。

于 2013-12-26T12:18:36.383 回答