Eclipse - 无法解析方法NewStringUTF()

时间:2013-04-09 10:43:51

标签: android opencv

我正在研究一个简单的OpenCV代码,以便在进行sobel操作后显示图像。我已将项目属性的所有必要路径包括在内,以包含OpenCV4Android文件夹。我解决了所有错误,除了一个:

错误:Method NewStringUTF() could not be resolved

我包含<jni.h>我还在项目路径中包含了AndroidNDK文件夹。我的Eclipse非常难以预料。早些时候,当我在Android上开发其他应用程序时,它运行良好。 eclipse机器依赖吗?我该怎么做才能解决这个错误?

4 个答案:

答案 0 :(得分:24)

您可能在C文件

中使用CPP语法

我有同样的错误

只需切换到正确的语法,问题就会解决 C语法

return (*env)->NewStringUTF(env, "Hello from JNI !");

C ++语法

return (env)->NewStringUTF("Hello from JNI !");

从C语言切换到C ++语法后,我的问题得到了解决。

答案 1 :(得分:13)

我有这个问题。根据我的“解决方案”,它似乎是Eclipse中的一些有趣的东西,因为我有另一个项目打开(据我所知)确切的一些属性,路径等,除了标记为图书馆计划。

只需观察jhi.h中的相应结构,回调原型就在那里!按住Ctrl键并单击include语句,Eclipse甚至会链接您的引用!

转到项目的属性 - &gt; C / C ++一般 - &gt;代码分析。单击“使用项目设置”单选按钮(或“配置工作区设置...”按钮)。禁用(取消选中)“方法无法解析”复选框。单击“应用”,“确定”。然后为您的项目,刷新,清理,刷新,构建。

一定有某些我在创建新项目时做了不同的事情。或者可能是因为项目的位置,或者之前是图书馆的事实。也许这真的是一个Eclipse bug?作为参考,我正在使用ADT v21.1.0-569685和NDK r8e for Windows。

答案 2 :(得分:2)

JNIEXPORT jstring JNICALL Java_com_example_faceextractiontest_Makeover_hello(JNIEnv* env, jobject obj){
const char* c = "hello how are you i am ahmad raza";
jstring s = env->NewStringUTF(c);

return s;
}

这对我有用

答案 3 :(得分:0)

  • 第1步:项目属性 - &gt; C / C ++一般 - &gt;路径和符号

  • 第2步:选择“包含”标签,添加 - &gt; $ ANDROID_NDK_HOME / platforms / android-19 / arch-arm / usr / include(你自己的路径)然后,检查'所有语言'

  • 第3步:申请 - &gt;确定

就是这样。我的解决方案。