我正在研究一个简单的OpenCV代码,以便在进行sobel操作后显示图像。我已将项目属性的所有必要路径包括在内,以包含OpenCV4Android
文件夹。我解决了所有错误,除了一个:
错误:Method NewStringUTF() could not be resolved
我包含<jni.h>
我还在项目路径中包含了AndroidNDK文件夹。我的Eclipse非常难以预料。早些时候,当我在Android上开发其他应用程序时,它运行良好。 eclipse机器依赖吗?我该怎么做才能解决这个错误?
答案 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;确定
就是这样。我的解决方案。