compilar android...

Started by SplinterGU, December 07, 2011, 02:30:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

A ver si alguien me da una mano para preparar el entorno de compilacion android...

instale el sdk de android en una carpeta android-sdks, luego instale android-ndk-r7, cree las variables PATH apuntando a donde esta el adb y en el raiz del sdk...

voy a la carpeta samples/hello-jni (por ejemplo), le doy ndk-build y me tira el siguiente error

splinter@splinter-portatil:~/android-ndk-r7/samples/hello-jni$ ndk-build
Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup       : libs/armeabi/gdb.setup
Compile thumb  : hello-jni <= hello-jni.c
arm-linux-androideabi-gcc: error trying to exec '/home/splinter/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/as': execv: Exec format error
make: *** [obj/local/armeabi/objs-debug/hello-jni/hello-jni.o] Error 1

evidentemente algo estoy haciendo mal, demas esta decir que me pasa con cualquier cosa (incluida la version monolitica de josebita)

cualquier ayuda o pista que lleve a la solucion sera agradecida con su correspondiente karma... (y en un futuro proximo con una version oficial bennugd modular para android)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

KeoH

Arrrrrgg ... me gustaría ayudarte con esto pero me suena a chino jajajaja Usas eclipse, lo haces a pelo o usas otro programa? Yo con eclipse he llegado a conseguir hacer los tutoriales de android developer xDD y mira q soy manco yo pa esto jajaja

SplinterGU

ya lo solucione!

compilando...

da error

Compile++ thumb  : SDL <= SDL_android.cpp
In file included from jni/SDL/../../../../3rdparty/SDL-1.3/src//src/core/android/SDL_android.cpp:29:
jni/SDL/../../../../3rdparty/SDL-1.3/src//src/core/android/../../events/SDL_events_c.h:27:30: error: SDL_dropevents_c.h: No such file or directory
make: *** [obj/local/armeabi/objs/SDL/src/core/android/SDL_android.o] Error 1


pero ya va marchado la cosa... :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

josebita, cuales son los archivos android que tengo que crear para crear un proyecto nuevo?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on December 07, 2011, 02:44:35 AM
josebita, cuales son los archivos android que tengo que crear para crear un proyecto nuevo?
los makefiles están en projects/android y el formato no es el estándar de gnu.

SplinterGU

y no hay que crear xml, nada nada? todo lo genera el ndk-build?

si me describis en unas lineas cuales son los archivos que tengo que generar a mano y cuales se generan solos con el ndk-build u otra utilidad, seria fantastico.

por otro lado, me podrias explicar tambien como armar el apk? (queria armar uno de los samples, pero no va)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

El apk se genera sólo (es como si fuera el "binario" generado por la compilación).

Si les el hilo de android en las páginas donde josebita me explica a compilarlo tendrias todas las respuestas.


SplinterGU

Quote from: FreeYourMind on December 07, 2011, 12:49:15 PM
El apk se genera sólo (es como si fuera el "binario" generado por la compilación).

Si les el hilo de android en las páginas donde josebita me explica a compilarlo tendrias todas las respuestas.



lamento informarte que no se genera solo, por lo menos no con los samples que aparecen en el ndk...

como si tuviera tiempo de leerme todo el hilo, ademas de que me pierdo en el hilo, si me haces el gran favor de indicarme el post (que imagino dira como hacer el apk, porque yo busque en el foro la palabra apk, y en ninguno dice como), te lo agradezco...

EDIT: supongo que se hara con ant install, pero el ant install me tira esto...

splinter@splinter-portatil:/home/opt/android-ndk-r7/samples/hello-jni$ ant install
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-7-openjdk-i386/lib/tools.jar
Buildfile: build.xml does not exist!
Build failed

me falta el tools.jar (no deberia venir?)

y el build.xml, que ni idea como crearlo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#8
(Perdón por la tardanza en contestar; me he venido al trabajo y se me ha pasado...).
Una vez que la parte nativa (NDK) ha acabado, puedes crear el apk ejecutando "ant install" o "ant debug".
Según la página de instalación del SDK de Android, necesitas el JDK 6 de Sun, así que _imagino_ que no irá desde el OpenJDK y menos el 7. Puedes bajártelo de aquí.
El build.xml está (en mi rama) en projects/android/build.xml pero lo que debes modificar es el local.properties para que apunte a la ruta donde tengas el SDK instalado. De todas formas eso no hará falta hasta que termines la parte del NDK.

Y desde esa ruta (projects/android) ejecutas:
ndk-build
ant install (deberás tener el dispositivo conectado y adb funcionando)

Y debería funcionar. Para que te hagas una idea de lo que hace, la parte de ndk-build compila todo el código como librerías dinámicas y estáticas (definidas en el makefile projects/android/jni) al directorio "projects/android/libs/" y compila el código principal a una librería llamada libmain.so (y lo enlaza al resto de librerías necesarias). Luego es el código java el que llama a la función main que está en libmain.so

A ver si me he explicado bien.

[Edito] Lo de la falta de cabeceras puede ser que se me haya pasado subir algo al SVN, lo revisaré. Mientras tanto puedes cogerlo a mano desde aquí: http://hg.libsdl.org/SDL/file/0209e1e113f2/src/events/SDL_dropevents_c.h aunque no sé si no faltará alguno más...

SplinterGU

gracias joseba por responder... pregunta, esto es un procedimiento normal para cualquier proyecto o solo para BennuGD?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Yo diría que es bastante normal. Básicamente es instalar el SDK + ndk y luego compilar ambos códigos. Muchas gente prefiere usar eclipse,  pero yo estoy cómodo con la línea de comandos.

FreeYourMind

Como nota en windows al usar el cygwin, habia partes del codigo que al crear el objeto me petaban el SO y el PC se fundia en una bonita pantalla azul, lo porbé 2 veces y lo tengo claro, hay problemas compilando por lo menos en mi Windows 7.

Por suerte compilar el proyecto en Linux es bastante sencillo, sólo hay que cambiar la ruta del SDK y instalar el ant si no lo tenemos.

SplinterGU

bueno, copiado el .h ahi esta compilando bennugd...

copiar el build.xml no soluciono el problema de generacion de los samples, edite el build.xml para poner lo que supongo es la class, pero no va, me dice que no la encuentra...

por otro lado, no necesite bajar el java-6, con instalar el default-jdk (version 7) ya el ant empezo a correr...

creo que estaria bien un instructivo de pocas lineas (y no leer largos tutoriales en ingles) con los paquetes que hacen falta, me costo un buen tiempo sacarlo...

igual quiero entender como funciona el metodo para armar algo de cero... no solo compilar bennugd para android.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

otro ausente...

Compile thumb  : bgdrtm <= sysprocs.c
In file included from jni/bgdrtm/../../../../core//include/loadlib.h:38,
                 from jni/bgdrtm/../../../../core/bgdrtm/src/sysprocs.c:29:
jni/bgdrtm/../../../../core//include/monolithic_includes.h:96:35: error: mod_fmodex_symbols.h: No such file or directory
In file included from jni/bgdrtm/../../../../core//include/loadlib.h:38,
                 from jni/bgdrtm/../../../../core/bgdrtm/src/sysprocs.c:29:
jni/bgdrtm/../../../../core//include/monolithic_includes.h:205: error: 'mod_fmodex_globals_def' undeclared here (not in a function)
jni/bgdrtm/../../../../core//include/monolithic_includes.h:205: error: 'mod_fmodex_functions_exports' undeclared here (not in a function)
jni/bgdrtm/../../../../core//include/monolithic_includes.h:288: error: 'mod_fmodex_globals_fixup' undeclared here (not in a functi


joseba, una cosa util que yo hago para saber que fuentes me faltan incluir en el svn es

svn st | grep ^?

eso va a generar una lista de los archivos que svn no conoce...

ahora me pregunto, como es que free pudo compilarlo si a mi me faltan fuentes y baje la version del svn?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Yo compile versiones mucho mas viejas, hace 2 meses que no compilo nada, seguramente es porque en la ultima ya hay muchas cosas nuevas y faltaran algunas dependencias en el CVS...