Cómo compilar la carpeta jni de telegrama

Estoy tratando de compilar la carpeta jni en el código fuente del telegrama en github.com/DrKLO/Telegram/ con ndk

Pero cuando estoy escribiendo ndk-build en cmd en la carpeta ndk como:

F: \ ndk \ android-ndk-r10> ndk-build -CF: \ Espacio de Trabajo \ Androide \ Telegram-master-1-12-2016 \ Telegram-master \ TMessagesProj \ jni

Recibo una carpeta de error y libs no creada

Cuando agrego la trayectoria de ndk al estudio del androide y agrego la carpeta del jni manualmente el estudio del androide no puedo encontrar algunos archivos de la cabecera

Después de esta pregunta descarga Cygwin y usarlo, pero de nuevo obtener este error como ndk-build

$ndkbuild 

[Armeabi] SharedLibrary: libtmessages.15.so

Process_begin: CreateProcess (……..,

F: / ndk / android-ndk-r10 / fuentes / cxx-stl / gnu-libstdc ++ / 4.8 / libs / armeabi /thumb/libgnustl_static.a -lgcc -no-canonical-prefixes -Wl, – no-undefined -Wl -z, noexecstack -Wl, -z, relro -Wl, -z, ahora -LF: / ndk / android-ndk-r10 / plataformas / android- 9 / arch-arm / usr / lib -ljnigraphics -llog -lz -ldl -lc -lm -o F: / Espacio de trabajo / Android / Telegram-master-1-12-2016 / Telegrammaestro / TMessagesProj // obj / local / armeabi / libtm essages.15.so, …) falló

Make (e = 87): El parámetro es incorrecto.

Make.exe: *** [F: /Workspace/Android/Telegram-master-1-12-2016/Telegram-master/TMessagesProj//obj/local/armeabi/libtmessages.15.so] Error 87

¿Cómo arreglar esto?

Problema de actualización importante: en la versión 3.18, después de descargar el proyecto de fuente de telegrama, si vas a la carpeta jni encontrarás y vacía la carpeta llamada libtgvoip, para llenarla con los archivos necesarios: 1- vaya al origen del telegrama de githum, goto jni carpeta y haga clic En la carpeta libtgvoip @ eb813e1 (@ significa que se trata de una carpeta refrence). 2- Descargue esa biblioteca también! 3- copiar su contenido en la carpeta vacía discutido anteriormente!

Ahora vamos a empezar: Es muy fácil.

1- Agregue el directorio NDK a la variable PATH del entorno.

2- Abra Android.mk y agregue la siguiente línea: LOCAL_SHORT_COMMANDS: = true

Introduzca aquí la descripción de la imagen

3- Abra Application.mk y agregue la línea siguiente: APP_SHORT_COMMANDS: = true

Introduzca aquí la descripción de la imagen

4- Abra el símbolo del sistema como administrador y navegue a la carpeta jni como ésta: (importante: en la última versión del telegrama debe navegar a la carpeta jni parent en lugar de la carpeta jni)

Introduzca aquí la descripción de la imagen

5- Ejecutar el comando ndk-build

Introduzca aquí la descripción de la imagen

Entonces ndk comenzará a construir archivos .so:

Introduzca aquí la descripción de la imagen

Esperar hasta que termine la tarea, tal vez algunas advertencias se muestran, pero no es importante. Finalmente tendrás toda la biblioteca compartida (archivos .so) en el directorio obj: (importante: en la última versión del telegrama .so los archivos se crean en la carpeta lib y todo está listo para construir)

Introduzca aquí la descripción de la imagen

Luego ir a cada una de estas carpetas y eliminar todo, excepto libtmessages.22.so. Crear una carpeta libs y copiar ese directorio tres en él:

Introduzca aquí la descripción de la imagen

Construir y divertirse! (Recuerde llenar las variables en la clase org.telegram.messenger.BuildVars con su id de aplicación y app_hash. Lea más aquí )

Sólo tienes que quitar el archivo de objeto. Este error muy probablemente apareció después de que la compilación anterior se interrumpió y el archivo de objeto no se generó completamente. Introduzca aquí la descripción de la imagen

  • Llamar a System.loadLibrary dos veces para la misma biblioteca compartida
  • JNI proguard obfuscation
  • Redireccionamiento de STDIN y STDOUT del programa C en Android
  • Cómo construir una biblioteca compartida y llamarla en otro programa ndk
  • Android JNI: root-making deadd00d (dvmAbort)
  • Cómo devolver array int de Java a JNI
  • ¿Cualquier manera simple o fácil de depurar el código de Android NDK?
  • Android: 'No se pudo cargar Foo: findLibrary returned null'
  • UnityPlayerActivity no recibe registro onCreate ()
  • Cómo obtener un contexto de una actividad nativa
  • Detenga el subproceso Java que llama a la función JNI
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.