9

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

错误:Method NewStringUTF() could not be resolved

我包括<jni.h>了我还在项目路径中包括了 AndroidNDK 文件夹。我的 Eclipse 是高度不可预测的。早些时候,当我在 Android 上开发其他应用程序时,它运行良好。eclipse机器依赖吗?我能做些什么来解决这个错误?

4

4 回答 4

24

您可能在文件中使用C语法CPP

我有同样的错误

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

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

C++ 语法

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

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

于 2013-07-11T11:36:30.673 回答
13

我有这个问题。根据我的“解决方案”,Eclipse 中发生的事情似乎很有趣,因为我打开了另一个项目(据我所知)确切的一些属性、路径等,除了被标记为图书馆项目。

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

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

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

于 2013-04-19T18:47:17.200 回答
3
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;
}

这对我有用

于 2015-06-13T18:37:44.170 回答
0
  • 第 1 步:项目属性 -> C/C++ 常规 -> 路径和符号

  • 第 2 步:选择“包含”选项卡,添加 -> $ANDROID_NDK_HOME/platforms/android-19/arch-arm/usr/include(您自己的路径),然后选中“所有语言”

  • 第 3 步:申请 -> 确定

而已。我的解决方案。

于 2015-01-12T09:13:40.797 回答