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 🙁
- Manera portable de garantizar que el campo del año de un DateFormat es solamente dos dígitos
- Android - ¿Cómo configurar un diseño semi-transparente?
- SimpleDateFormat devuelve la fecha de la cadena en diferentes idiomas
- ¿Cuál es el nombre de mi paquete de aplicación en android?
- Implementar OnClickListener para un fragmento en android
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.
- Extraño error al ejecutar httpclient
- Envío de JSON en la solicitud POST con retrofit
- ¿Cómo puedo reiniciar mi aplicación después de reiniciar el dispositivo?
- ¿Es el cierre y la reapertura de las instancias de Realm malas para el rendimiento?
- ¿Cómo obtener la URL redireccionada de OkHttp3?
- ¿Cómo se puede proteger la información contenida en un APK?
- ¿Cómo desinstalar completamente el SDK de tejido de Twitter del proyecto android?
- ¿Qué es exactamente un Contexto en Java?
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.
- Configuración del elemento ListView marcado desde Adapter
- El icono del menú de opciones de Android no se mostrará