2012-02-13 10 views
9

Tengo un proyecto Android NDK cuya parte NDK compila bien desde la línea de comandos; No solía tener problemas para ejecutar las cosas compiladas desde Eclipse como un proyecto Java puro. Pero lo convertí en un proyecto de C/C++ y ahora ni siquiera puedo ejecutarlo.error falso de Eclipse: no se pudo resolver la función '__android_log_print' (Android, CDT)

Veo en la "Consola" que la biblioteca está construida, PERO: Eclipse me dice que mi proyecto tiene errores y no lo ejecutará. (¿Por qué en la Tierra? El código es compilado !!!)

he resuelto algunos problemas con los símbolos que faltan añadiendo incluyen rutas de acceso a las propiedades del proyecto.

Pero sigo recibiendo este extraño error.

Así, dos preguntas:

  1. ¿Cómo deshacerse de este error? (¿Se puede ignorar?)
  2. Plan B: ¿cómo convierto este proyecto mixto C/C++/Java a uno puro de Java?

= = =

PS "Como se llama el barco, por lo que va a hacer". ¿No podrían simplemente encontrar un nombre mejor para un IDE, algo así como "codificación lúcida"? (Pregunta retórica)

= = =

ACTUALIZACIÓN: Parece que Eclipse informa de errores sólo para los archivos que se ve (es decir, que muestra). He abierto otro archivo con una macro LOGD, y el Eclipse también informó de un error. Cerré todas las ventanas de archivos, cerré Eclipse y borré un archivo .something. Después de eso, pude ejecutar la aplicación. No me arriesgué a abrir los archivos fuente con esa macro de registro. (Eso es muy lejos de "codificación lúcido", ¿verdad?)

+0

Vea también: cómo usar Code :: Blocks en lugar de Eclipse: http://stackoverflow.com/questions/9079592/need-a-simple-linux-c-ide- android-ndk/9668394 # 9668394 – 18446744073709551615

Respuesta

1

En el archivo Android.mk, por favor añadir

LOCAL_LDLIBS := -llog -landroid 

El __android_log_print no es parte de libc, que se encuentra en la biblioteca de registro , por lo que debe declarar explícitamente que está vinculado en.

Tenga en cuenta que el eclipse se rehusará a ejecutar el proyecto si hay errores en el lado C o java. En este caso, hay un error del enlazador; el código no finalizó satisfactoriamente la compilación, por lo que no se ejecutará.

+0

I _do_ have '' -llog'' en '' Android.mk'', de lo contrario habría un error de enlace en la línea de comandos. Solo en caso de que agregue liblog.so a la lista en la pestaña "Bibliotecas" y haya agregado el archivo ..arch-arm/usr/lib a la pestaña "Rutas de la Biblioteca". Todavía estoy recibiendo el mismo error. Eclipse no quiere ejecutar el proyecto cuya compilación se completó correctamente. – 18446744073709551615

+0

Repito: no hay _ error de enlace_. Pude ejecutar el proyecto antes de convertirlo a C/Java mixto. – 18446744073709551615

2

Cómo se puede ignorar: abra la ventana 'Problemas', seleccione los errores en los archivos c/C++ y presione la tecla Supr. Se mostrará un cuadro de mensaje de confirmación, pero después de eso puede depurar su aplicación ... hasta la próxima reconstrucción =) Como alternativa, como mencionó anteriormente, puede cerrar todos los archivos c/C++ abiertos.

+0

Yo ... errr ... lo he cerrado. No sirvió de nada entonces, pero ahora no sé cómo volver a abrir la ventana "Problemas". – 18446744073709551615

+0

Lo encontró: menú - ventana - mostrar vista - problemas. – 18446744073709551615

6

La configuración del indexador CDT tiene que activar "Índice de cabeceras sin usar ..."

Cómo llegar: Proyecto-> Propiedades-> C/C++ General-> paso a paso.

enter image description here

se deshace del error para mí.

+0

Lo resolvió para mí – mlipman

0

alternativamente puede volver a escribir estas cadenas y reiniciar un Eclipse; Todas estas soluciones suenan cojas aunque ...

Cuestiones relacionadas