android ubuntu android-studio compilation vlc

El proyecto Build VLC for Android falló en Ubuntu 12.04



android-studio compilation (4)

Quiero trabajar en el proyecto VLC para Android. Así que primero necesito compilar este proyecto, sigo todos los pasos en https://wiki.videolan.org/AndroidCompile/ pero cuando hago el sh compile.sh -a armeabi-v7a al final tengo este error:

contribs: make failed Error:Execution failed for task '':libvlc:buildDebugARMv5''. > Process ''command ''./compile-libvlc.sh'''' finished with non-zero exit value 1

Estoy trabajando con Android Studio.

Actualizar

Así que he descargado un ubuntu 12.04 vm y he creado el proyecto de Android VLC en él. El mismo error aparece pero me dijo también que mi gettext era antiguo y debería estar en la versión 0.19.1 o posterior. Así que dejé la máquina virtual y revisé mi versión gettext (0.18.4) en mi máquina real, puse la actualización de gettext y sé que la versión 0.19.4.

Construyo el proyecto y contribs: make failed error contribs: make failed se haya ido, pero esto es conocer el nuevo error:

FAILURE: Build failed with an exception. * Where: Build file ''/home/edouard/3DSoundLabs/android/android/build.gradle'' line: 16 * What went wrong: A problem occurred evaluating root project ''android''. > Failed to apply plugin [id ''android-sdk-manager''] > Specified SDK directory ''./3DSoundLabs/android/android-sdk-linux/'' in ''local.properties'' is not found. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED

Aquí está mi local.properties y parece ser bueno, no entiendo

local.properties:

sdk.dir=./3DSoundLabs/android/android-sdk-linux/ ndk.dir=./3DSoundLabs/android/android-ndk-r10e/

¡RESUELTO!

De acuerdo, entonces, para el segundo error, era solo un problema de ruta, mi culpa. Corrección: sdk.dir=../android-sdk-linux/ ndk.dir=../android-ndk-r10e/

Así que el error principal fue mi versión de gettext que era antigua, y no la encontré en el begening porque el log no decía este problema.


Construir un reproductor VLC es una tarea realmente compleja y lleva mucho tiempo. Y el error que obtienes es el primero de muchos errores que tratarás de solucionar en el camino.

Te sugiero una forma fácil: no compilar VLC por ti mismo. Las ideas principales son: si no quiere modificar las fuentes de VLC, sería suficiente obtener el archivo .so de VLC.apk original (podría simplemente descomprimir una apk) y copiar los archivos org.videolan.libvlc.* De las fuentes de VLC en tu proyecto.

Puede consultar este proyecto para tener una idea de cómo podría funcionar.


No ha mencionado qué versión de bit de Ubuntu está utilizando y la wiki de VLC AndroidComile dice

versiones muy actualizadas de esas herramientas.

Así que fui adelante y probé en Ubuntu 14.04 de 64 bits.

Aquí esta lo que hice

Paquete mínimo requerido instalado:

sudo apt-get update sudo apt-get install ant autoconf automake autopoint cmake gawk gcc g++ libtool m4 patch pkg-config libprotobuf-dev libprotobuf-c0-dev protobuf-c-compiler ragel subversion unzip

Navegado al directorio VLC de Android y ejecutar:

./compile.sh *** No ANDROID_ABI defined architecture: using ARMv7 inflating: ... ... :wrapper BUILD SUCCESSFUL Total time: 4.992 secs Downloading https://services.gradle.org/distributions/gradle-2.2.1-bin.zip ........................................................................... Unzipping /home/<user>/.gradle/wrapper/dists/gradle-2.2.1-bin/88n1whbyjvxg3s40jzz5ur27/gradle-2.2.1-bin.zip to /home/<user>/.gradle/wrapper/dists/gradle-2.2.1-bin/88n1whbyjvxg3s40jzz5ur27 Set executable permissions for: /home/<user>/.gradle/wrapper/dists/gradle-2.2.1-bin/88n1whbyjvxg3s40jzz5ur27/gradle-2.2.1/bin/gradle ------------------------------------------------------------ Gradle 2.2.1 ------------------------------------------------------------ Build time: 2014-11-24 09:45:35 UTC Build number: none Revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a Groovy: 2.3.6 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 JVM: 1.7.0_80 (Oracle Corporation 24.80-b11) OS: Linux 3.13.0-53-generic amd64 VLC source not found, cloning Cloning into ''vlc''... VLC source found Configuring Lots of configuration and make logs ... make[1]: Leaving directory `/<...>/vlc/android/vlc/extras/tools/cmake'' touch .cmake You are ready to build VLC and its contribs Bootstraping NOTE: GNU gettext appears to be missing or out-of-date. Please install or update GNU gettext. Also check if you have cvs, a dependency of autopoint. Otherwise, you will not be able to build a source tarball. ============================================================== generating modules/**/Makefile.am ..... + autoreconf --install --force --verbose -I m4 autoreconf: Entering directory `.'' autoreconf: running: true --force .... bin/Makefile.am: installing ''autotools/depcomp'' autoreconf: Leaving directory `.'' + rm -f po/Makevars.template + rm -f stamp-h* + set +x Successfully bootstrapped Building the contribs Generating EGL pkg-config file Generating GLESv2 pkg-config file Guessing build system... x86_64-linux-gnu Creating configuration file... config.mak Bootstrap completed. Run "make" to start compilation. Other targets: * make install same as "make" * make prebuilt fetch and install prebuilt binaries * make list list packages * make fetch fetch required source tarballs * make fetch-all fetch all source tarballs * make distclean clean everything and undo bootstrap * make mostlyclean clean everything except source tarballs * make clean clean everything * make package prepare prebuilt packages curl -f -L -- "http://downloads.videolan.org/pub/contrib/a52dec-0.7.4.tar.gz" > "../../contrib/tarballs/a52dec-0.7.4.tar.gz" Lots of fetching and cloning ... Lots of configuration and make logs ... Libraries have been installed in: /<...>/vlc/android/vlc/contrib/arm-linux-androideabi/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR'' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH'' environment variable during execution - add LIBDIR to the `LD_RUN_PATH'' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR'' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/gmp'' make[3]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/gmp'' make[2]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/gmp'' make[1]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/gmp'' touch .gmp contribs: make failed

make mantuvo fallando, pero cada vez con diferentes libs, y tuve que repetir el comando ./compile.sh varias veces. Pero después de un error similar con zvbi

make[4]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/zvbi'' make[3]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/zvbi'' make[2]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/zvbi'' make[1]: Leaving directory `/<...>/vlc/android/vlc/contrib/contrib-android-arm-linux-androideabi/zvbi'' touch .zvbi contribs: make failed

Hubo un mensaje de error diferente esta vez:

mkdir -p -- /<...>/vlc/android/vlc/contrib/arm-linux-androideabi/share/aclocal && cd libgpg-error && autoreconf -fiv -I/<...>/vlc/android/vlc/contrib/arm-linux-androideabi/share/aclocal autoreconf: Entering directory `.'' autoreconf: running: autopoint --force autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac file requires the infrastructure from gettext-0.19.3 but this version is older. Please upgrade to gettext-0.19.3 or newer. autopoint: *** Stop. autoreconf: autopoint failed with exit status: 1 make: *** [.gpg-error] Error 1 contribs: make failed $ gettext --version gettext (GNU gettext-runtime) 0.18.3

A partir de este escrito, incluso vívido (v0.19.2-2) no tiene ese alto nivel de gettext. Entonces, hice trampa y degradé manualmente la versión requerida de gettext a 0.18:

$ grep --include=configure.ac -rn AM_GNU_GETTEXT_VERSION . ./vlc/configure.ac:439:AM_GNU_GETTEXT_VERSION([0.19.2]) ./vlc/contrib/contrib-android-arm-linux-androideabi/gnutls/configure.ac:148:AM_GNU_GETTEXT_VERSION([0.18]) ./vlc/contrib/contrib-android-arm-linux-androideabi/libgpg-error/configure.ac:158:AM_GNU_GETTEXT_VERSION([0.19.3])

Uno más ./compile.sh y bingo:

[armeabi-v7a] SharedLibrary : libvlcjni.so [armeabi-v7a] Install : libvlcjni.so => libs/armeabi-v7a/libvlcjni.so rm jni/../../android-libs/libbinder.c jni/../../android-libs/libui.c jni/../../android-libs/libutils.c jni/../../android-libs/libstagefright.c jni/../../android-libs/libcutils.c jni/../../android-libs/libhardware.c jni/../../android-libs/libmedia.c make: Leaving directory `/<...>/vlc/android/libvlc'' Download https://jcenter.bintray.com/com/android/tools/build/gradle/1.2.1/gradle-1.2.1.pom ... > Configuring > 0/3 projects > root project

Pero luego se colgó allí para siempre (probablemente debido al conflicto en las configuraciones de proxy). ps x revelado:

/bin/sh ./compile.sh java -Dorg.gradle.appname=gradlew -classpath /<...>/vlc/android/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain assembleVanillaARMv7Debug

Entonces, decidí cancelar Ctrl + C ./compile.sh e intentar importar el proyecto a Android Studio. Lanzó el AS y eligió " Abrir un proyecto existente de Android Studio ". AS también recogió algunos paquetes de jcenter y bingo (esta vez de verdad)!

Information:Gradle tasks [:libvlc:generateDebugSources, :libvlc:generateDebugAndroidTestSources, :vlc-android:generateChromeARMv5DebugSources, :vlc-android:generateChromeARMv5DebugAndroidTestSources] :libvlc:preBuild UP-TO-DATE :libvlc:preDebugBuild UP-TO-DATE :libvlc:checkDebugManifest :libvlc:prepareDebugDependencies :libvlc:compileDebugAidl :libvlc:compileDebugRenderscript :libvlc:generateDebugBuildConfig :libvlc:generateDebugAssets UP-TO-DATE :libvlc:mergeDebugAssets :libvlc:generateDebugResValues :libvlc:generateDebugResources :libvlc:packageDebugResources :libvlc:processDebugManifest :libvlc:processDebugResources :libvlc:generateDebugSources :libvlc:preDebugAndroidTestBuild UP-TO-DATE :libvlc:prepareDebugAndroidTestDependencies :libvlc:compileDebugAndroidTestAidl :libvlc:compileLint :libvlc:copyDebugLint UP-TO-DATE :libvlc:mergeDebugProguardFiles :libvlc:processDebugJavaRes UP-TO-DATE :libvlc:compileDebugJava Note: /<...>/vlc/android/libvlc/src/org/videolan/libvlc/LibVlcUtil.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: /<...>/vlc/android/libvlc/src/org/videolan/libvlc/VLCObject.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. :libvlc:packageDebugJar :libvlc:compileDebugNdk UP-TO-DATE :libvlc:packageDebugJniLibs :libvlc:packageDebugLocalJar UP-TO-DATE :libvlc:packageDebugRenderscript UP-TO-DATE :libvlc:bundleDebug :libvlc:compileDebugSources :libvlc:assembleDebug :libvlc:processDebugAndroidTestManifest :libvlc:compileDebugAndroidTestRenderscript :libvlc:generateDebugAndroidTestBuildConfig :libvlc:generateDebugAndroidTestAssets UP-TO-DATE :libvlc:mergeDebugAndroidTestAssets :libvlc:generateDebugAndroidTestResValues :libvlc:generateDebugAndroidTestResources :libvlc:mergeDebugAndroidTestResources :libvlc:processDebugAndroidTestResources :libvlc:generateDebugAndroidTestSources :vlc-android:preBuild UP-TO-DATE :vlc-android:preChromeARMv5DebugBuild UP-TO-DATE :vlc-android:checkChromeARMv5DebugManifest :libvlc:copyReleaseLint UP-TO-DATE :libvlc:mergeReleaseProguardFiles :libvlc:preReleaseBuild UP-TO-DATE :libvlc:checkReleaseManifest :libvlc:prepareReleaseDependencies :libvlc:compileReleaseAidl :libvlc:compileReleaseRenderscript :libvlc:generateReleaseBuildConfig :libvlc:generateReleaseAssets UP-TO-DATE :libvlc:mergeReleaseAssets :libvlc:generateReleaseResValues :libvlc:generateReleaseResources :libvlc:packageReleaseResources :libvlc:processReleaseManifest :libvlc:processReleaseResources :libvlc:generateReleaseSources :libvlc:processReleaseJavaRes UP-TO-DATE :libvlc:compileReleaseJava Note: /<...>/vlc/android/libvlc/src/org/videolan/libvlc/LibVlcUtil.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: /<...>/vlc/android/libvlc/src/org/videolan/libvlc/VLCObject.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. :libvlc:packageReleaseJar :libvlc:compileReleaseNdk UP-TO-DATE :libvlc:packageReleaseJniLibs :libvlc:packageReleaseLocalJar UP-TO-DATE :libvlc:packageReleaseRenderscript UP-TO-DATE :libvlc:bundleRelease :vlc-android:preChromeARMv5ReleaseBuild UP-TO-DATE :vlc-android:preChromeARMv6fpuDebugBuild UP-TO-DATE :vlc-android:preChromeARMv6fpuReleaseBuild UP-TO-DATE :vlc-android:preChromeARMv6nofpuDebugBuild UP-TO-DATE :vlc-android:preChromeARMv6nofpuReleaseBuild UP-TO-DATE :vlc-android:preChromeARMv7DebugBuild UP-TO-DATE :vlc-android:preChromeARMv7ReleaseBuild UP-TO-DATE :vlc-android:preChromeARMv8DebugBuild UP-TO-DATE :vlc-android:preChromeARMv8ReleaseBuild UP-TO-DATE :vlc-android:preChromeMIPS64DebugBuild UP-TO-DATE :vlc-android:preChromeMIPS64ReleaseBuild UP-TO-DATE :vlc-android:preChromeMIPSDebugBuild UP-TO-DATE :vlc-android:preChromeMIPSReleaseBuild UP-TO-DATE :vlc-android:preChromeX86DebugBuild UP-TO-DATE :vlc-android:preChromeX86ReleaseBuild UP-TO-DATE :vlc-android:preChromeX86_64DebugBuild UP-TO-DATE :vlc-android:preChromeX86_64ReleaseBuild UP-TO-DATE :vlc-android:preTvARMv5DebugBuild UP-TO-DATE :vlc-android:preTvARMv5ReleaseBuild UP-TO-DATE :vlc-android:preTvARMv6fpuDebugBuild UP-TO-DATE :vlc-android:preTvARMv6fpuReleaseBuild UP-TO-DATE :vlc-android:preTvARMv6nofpuDebugBuild UP-TO-DATE :vlc-android:preTvARMv6nofpuReleaseBuild UP-TO-DATE :vlc-android:preTvARMv7DebugBuild UP-TO-DATE :vlc-android:preTvARMv7ReleaseBuild UP-TO-DATE :vlc-android:preTvARMv8DebugBuild UP-TO-DATE :vlc-android:preTvARMv8ReleaseBuild UP-TO-DATE :vlc-android:preTvMIPS64DebugBuild UP-TO-DATE :vlc-android:preTvMIPS64ReleaseBuild UP-TO-DATE :vlc-android:preTvMIPSDebugBuild UP-TO-DATE :vlc-android:preTvMIPSReleaseBuild UP-TO-DATE :vlc-android:preTvX86DebugBuild UP-TO-DATE :vlc-android:preTvX86ReleaseBuild UP-TO-DATE :vlc-android:preTvX86_64DebugBuild UP-TO-DATE :vlc-android:preTvX86_64ReleaseBuild UP-TO-DATE :vlc-android:preVanillaARMv5DebugBuild UP-TO-DATE :vlc-android:preVanillaARMv5ReleaseBuild UP-TO-DATE :vlc-android:preVanillaARMv6fpuDebugBuild UP-TO-DATE :vlc-android:preVanillaARMv6fpuReleaseBuild UP-TO-DATE :vlc-android:preVanillaARMv6nofpuDebugBuild UP-TO-DATE :vlc-android:preVanillaARMv6nofpuReleaseBuild UP-TO-DATE :vlc-android:preVanillaARMv7DebugBuild UP-TO-DATE :vlc-android:preVanillaARMv7ReleaseBuild UP-TO-DATE :vlc-android:preVanillaARMv8DebugBuild UP-TO-DATE :vlc-android:preVanillaARMv8ReleaseBuild UP-TO-DATE :vlc-android:preVanillaMIPS64DebugBuild UP-TO-DATE :vlc-android:preVanillaMIPS64ReleaseBuild UP-TO-DATE :vlc-android:preVanillaMIPSDebugBuild UP-TO-DATE :vlc-android:preVanillaMIPSReleaseBuild UP-TO-DATE :vlc-android:preVanillaX86DebugBuild UP-TO-DATE :vlc-android:preVanillaX86ReleaseBuild UP-TO-DATE :vlc-android:preVanillaX86_64DebugBuild UP-TO-DATE :vlc-android:preVanillaX86_64ReleaseBuild UP-TO-DATE :vlc-android:prepareAndroidLibvlcUnspecifiedLibrary :vlc-android:prepareComAndroidSupportAppcompatV72211Library :vlc-android:prepareComAndroidSupportCardviewV72211Library :vlc-android:prepareComAndroidSupportRecyclerviewV72211Library :vlc-android:prepareComAndroidSupportSupportV42211Library :vlc-android:prepareChromeARMv5DebugDependencies :vlc-android:compileChromeARMv5DebugAidl :vlc-android:compileChromeARMv5DebugRenderscript :vlc-android:generateChromeARMv5DebugBuildConfig :vlc-android:generateChromeARMv5DebugAssets UP-TO-DATE :vlc-android:mergeChromeARMv5DebugAssets :vlc-android:generateChromeARMv5DebugResValues :vlc-android:generateChromeARMv5DebugResources :vlc-android:mergeChromeARMv5DebugResources :vlc-android:processChromeARMv5DebugManifest :vlc-android:processChromeARMv5DebugResources warning: string ''advanced_debugging'' has no default translation. warning: string ''beta_warning'' has no default translation. warning: string ''enable_iomx'' has no default translation. warning: string ''enable_wheel_bar'' has no default translation. warning: string ''filebrowser_title'' has no default translation. warning: string ''main_prefs_category'' has no default translation. warning: string ''new_app'' has no default translation. warning: string ''new_app_go'' has no default translation. warning: string ''new_app_msg'' has no default translation. :vlc-android:generateChromeARMv5DebugSources :vlc-android:preChromeARMv5DebugAndroidTestBuild UP-TO-DATE :vlc-android:prepareChromeARMv5DebugAndroidTestDependencies :vlc-android:compileChromeARMv5DebugAndroidTestAidl :vlc-android:processChromeARMv5DebugAndroidTestManifest :vlc-android:compileChromeARMv5DebugAndroidTestRenderscript :vlc-android:generateChromeARMv5DebugAndroidTestBuildConfig :vlc-android:generateChromeARMv5DebugAndroidTestAssets UP-TO-DATE :vlc-android:mergeChromeARMv5DebugAndroidTestAssets :vlc-android:generateChromeARMv5DebugAndroidTestResValues :vlc-android:generateChromeARMv5DebugAndroidTestResources :vlc-android:mergeChromeARMv5DebugAndroidTestResources :vlc-android:processChromeARMv5DebugAndroidTestResources :vlc-android:generateChromeARMv5DebugAndroidTestSources Information:BUILD SUCCESSFUL Information:Total time: 22.922 secs Information:0 errors Information:0 warnings Information:See complete output in console

Presione Shift + F10 y:

Uploading file local path: /<...>/vlc/android/vlc-android/build/outputs/apk/VLC-Android-CHROME-1.4.0-ARMv5.apk remote path: /data/local/tmp/org.videolan.vlc.debug Installing org.videolan.vlc.debug DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/org.videolan.vlc.debug" pkg: /data/local/tmp/org.videolan.vlc.debug Success Launching application: org.videolan.vlc.debug/org.videolan.vlc.gui.MainActivity. DEVICE SHELL COMMAND: am start -n "org.videolan.vlc.debug/org.videolan.vlc.gui.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.videolan.vlc.debug/org.videolan.vlc.gui.MainActivity }

Puse abundante información y registros aquí con la esperanza de que esto sea útil para otros.


En Ubuntu de 64 bits, Ubuntu 15.04 (Vivid) es un éxito sin usar el estudio de Android. Es necesario solo cambiar esta línea:

de

AM_GNU_GETTEXT_VERSION([0.19.3])

a

AM_GNU_GETTEXT_VERSION([0.19.2])

en

./vlc/contrib/contrib-android-arm-linux-androideabi/libgpg-error/configure.ac

después de esto falla:

make: *** [.gpg-error] Error 1 contribs: make failed

Como se sugirió: ozbek.


Después de cuatro días de vacaciones de Año Nuevo, encontré la manera de construir este proyecto. Gracias ozbek y todo ayuda.

  1. Instalo ubuntu 15.10 nuevamente y lo clono desde https://github.com/hieu19926/vlc Porque no puedo clonar desde el sitio de origen.

  2. Siguiendo wiki de vlc para construir, y siguiendo a ozbek arriba.

  3. Tal vez tenga un error de curl, siguiendo: curl Error al conectarse al puerto localhost 80 o: https://github.com/rvm/rvm/issues/2989
    Que decir: $echo ip4 >> ~/.curlrc
    y cerrar la sesión, inicie sesión de nuevo.

  4. Después del paso 2, si ve el error de contrib, si es un error de iconv, simplemente edite en el archivo: $vi vlc/contrib/src/iconv/rules.mak línea 26: comente esta línea:

$ (APLICAR) $ (SRC) /iconv/libiconv-android-ios.patch

Y reconstruir, se ejecutará más tiempo que antes y con éxito

Ahora sigo encontrando cómo importar libvlc a android studio T_T, cualquiera que pueda recordar alguna lib para instalar después de construir éxito, por favor comente o publique aquí para todos, ¡gracias!