【问题标题】:Eclipse - Method NewStringUTF() could not be resolvedEclipse - 方法 NewStringUTF() 无法解析
【发布时间】:2015-06-14 02:37:44
【问题描述】:

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

错误:Method NewStringUTF() could not be resolved

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

【问题讨论】:

    标签: android opencv


    【解决方案1】:

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

    我有同样的错误

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

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

    C++ 语法

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 或者我们可以将其类型设置为“警告”以便能够在编译的同时保持对问题的了解
      • 我必须说它只是隐藏了问题。但就目前而言 - 来自 android 的 gcc 现在显然还不成熟。
      【解决方案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;
      }
      

      这对我有用

      【讨论】:

        【解决方案4】:
        • 第 1 步:项目属性 -> C/C++ 常规 -> 路径和符号

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

        • 第 3 步:申请 -> 确定

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

        【讨论】:

          猜你喜欢
          • 2016-02-24
          • 1970-01-01
          • 2014-04-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多