Eclipse – Método NewStringUTF () no se pudo resolver
Estoy trabajando en un código simple de OpenCV para exhibir una imagen después de sufrir la operación del sobel. He incluido todas las rutas necesarias a las propiedades del proyecto para incluir la carpeta OpenCV4Android
. Resolví todos los errores excepto uno:
Error: El Method NewStringUTF() could not be resolved
- OpenCV en Android con Eclipse
- OpenCV Android NDK Project no creará
- Opencv aumenta la precisión del umbral
- No se encontró ninguna implementación para error largo de org.opencv.core.Mat.n_Mat () con OpenCV
- Error: Programa "/ NDK-build" no se encuentra en PATH
<jni.h>
También he incluido la carpeta AndroidNDK en las rutas del proyecto. Mi Eclipse es altamente impredecible. Anteriormente, funcionó bien cuando desarrollé otra aplicación en Android. ¿Depende de la máquina eclipse? ¿Qué puedo hacer para corregir este error?
- ¿Es el cambio de contexto utilizando un tiempo significativo?
- Android - openCV, obtener parte de la imagen - comportamiento extraño
- ¿Cómo encontrar los contornos de un marco de una cámara Android y convertirlos en cuerpos box2d?
- Cómo deshabilitar / modificar AutoFocus y AutoWhiteBalance en Android Camera usando OpenCV
- Filtrado de MatOfDMatch
- Proyección posterior en Java con OpenCV
- Cómo configurar el uso de la cámara en Android con OpenCV + Qt5
- Cómo utilizar compilación OpenCV recompilada para Android
Lo más probable es que esté utilizando la sintaxis C
en el archivo CPP
Yo tenía el mismo error
Simplemente cambie a la sintaxis correcta y el problema será resuelto Sintaxis C
return (*env)->NewStringUTF(env, "Hello from JNI !");
Sintaxis de C ++
return (env)->NewStringUTF("Hello from JNI !");
Después de cambiar de C a C ++ sintaxis mi problema se resolvió.
Tuve este problema. Basado en mi "solución", parece ser algo gracioso en Eclipse, ya que tenía otro proyecto abierto con (hasta donde era capaz de decir) las propiedades exactas, caminos, etc, además de ser etiquetado como Proyecto de Biblioteca.
Sólo con la observación de la estructura correspondiente en jhi.h, los prototipos callback están allí! Ctrl-clic en la declaración de inclusión y Eclipse incluso le vinculará la referencia!
Vaya a Propiedades del proyecto -> C / C ++ General -> Análisis de código. Haga clic en el botón de opción "Usar configuración de proyecto" (o "Configurar configuración de área de trabajo …"). Desactive (desmarque) la casilla de verificación "Método no se puede resolver". Haga clic en "Aplicar", "Aceptar". A continuación, para su proyecto, actualizar, limpiar, actualizar, construir.
Debe haber algo que hice de manera diferente en la creación del nuevo proyecto. O tal vez fue debido a la ubicación de los proyectos, o el hecho de que el anterior era una biblioteca. Tal vez es realmente un error de Eclipse? Para referencia, estoy usando ADT v21.1.0-569685 y NDK r8e para Windows.
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; }
Esto funcionó para mí
-
Paso 1: Propiedades del proyecto -> C / C ++ General -> Ruta y símbolos
-
Paso 2: Seleccione la pestaña 'Incluir', Añadir -> $ ANDROID_NDK_HOME / plataformas / android-19 / arch-arm / usr / include (Su propio camino)
-
Paso 3: Aplicar -> Aceptar
Eso es. Mi solución.