Tipo 'jint' no se pudo resolver, y JNIEnv, jclass

Tratando de construir una simple aplicación helloWorld android / java con código jni c. Estoy usando Eclipse Indigo en Windows 7. Instalado ndk r8 en una ruta no-espacio, tiene la biblioteca c finalmente construir bien con ndk-build.cmd. Sin embargo, el archivo de encabezado generado por javah tiene errores no resueltos,

  • El tipo 'jint' no se pudo resolver
  • No se pudo resolver el tipo 'JNIEnv'
  • El tipo 'jclass' no pudo ser resuelto

No estaba viendo el jni.h incluir ayer pero después de un reinicio esta mañana, ese error ha desaparecido. Tuve un error no resuelto JNIEXPORT y JNICALL también, pero #defining parece haber resuelto eso. Pegado en los últimos 3 arriba. Han buscado google y Stack Overflow para las respuestas, pero tan pronto como alguien encuentra una solución que no dicen lo que esa solución fue 🙁

He comprobado el incluye en perspectivas de java y de c / c ++ en características del proyecto. Parece estar incluyendo los directorios jni.h que quiero, estoy usando el android-14 para las plataformas de brazo. El objetivo es un 4.0.3 IceCream Sanwich (que confusamente es API 15 ?!). Iba a tratar de usar un AVD para probar esto. He intentado cerrar / reabrir el proyecto, eliminarlo de Eclipse y reimportar, pero nada de eso ha funcionado.

¿Estoy perdiendo algunos incluye? ¿Cuáles y dónde debo fijarlos? Realmente apreciaría alguna ayuda.

Recientemente me he enfrentado con el mismo problema. En mi caso el problema era que convertí mi proyecto de Eclipse al proyecto de C ++, pero había utilizado el tipo de C. Así que para solucionar este problema simplemente borré la línea <nature>org.eclipse.cdt.core.ccnature</nature> del archivo .project del directorio del proyecto:

 <natures> <nature>com.android.ide.eclipse.adt.AndroidNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature> </natures> 

A continuación, reinicie su Eclipse. Para más información puede leer esto .

Haga clic con el botón derecho del proyecto y vaya a las propiedades de las propiedades.

Vaya a C / C ++ General-> Senderos y Símbolos .

En Incluye-> GNU C añade el equivalente de esto:

%ndkroot%\platforms\android-8\arch-arm\usr\include

Es posible que desee señalar a otras versiones de plataforma del NDK, simplemente cambie la parte del android-8 de la ruta.

Intente agregar un #undef __cplusplus justo antes de las directivas #include , como esto:

 #undef __cplusplus #include <string.h> #include <jni.h> 

Esto obligará a Eclipse a considerar las definiciones non-c++ de los objetos NDK.

  • Cómo establecer TimeZone en android
  • Libavcodec.so: tiene relocalizaciones de texto
  • ¿Cómo convertir el formato 24 horas en formato 12 h?
  • ¿Qué framework de Java REST para usar con App Engine y Android para los estudiantes?
  • No se puede convertir de android.app.FragmentManager a android.support.v4.app.FragmentManager
  • Error: Error de ejecución para la tarea ': app: transformClassesWithMultidexlistForDebug'
  • Explicación del ejemplo de JetBoy para dev.android.com?
  • ¿Es posible ejecutar pruebas de unidad de Android Espresso en métodos anotados @BeforeClass?
  • Activos de Android sin contexto
  • ¿Por qué la configuración de settings.xml se superpone a la barra de herramientas / barra de herramientas?
  • Wakelock y wifilock no funcionan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.