在Ubuntu 12.04上构buildAndroid项目的VLC失败

我想在Android项目的VLC上工作。 所以首先我需要编译这个项目,我遵循https://wiki.videolan.org/AndroidCompile/上的所有步骤,但是当我在最后sh compile.sh -a armeabi-v7a时,我有这个错误:

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

我正在使用Android Studio。

更新

所以我已经下载了一个Ubuntu的12.04虚拟机,我已经build立了VLC的Android项目。 同样的错误出现,但它也告诉我,我的gettext是旧的,它应该在0.19.1版本或更高版本。 所以我退出虚拟机,并检查我的真机版本(0.18.4),我把gettext更新,它知道0.19.4版本。

我build立的项目和contribs: make failed错误消失,但这是知道新的错误:

 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 

这是我的local.properties,它似乎是好的,我不明白

local.properties:

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

解决 !!

好吧,对于第二个错误,这只是一个path的问题,我的坏。 更正: sdk.dir=../android-sdk-linux/ ndk.dir=../android-ndk-r10e/

所以主要的错误是我的gettext版本,这是旧的,我没有发现它,因为日志没有告诉这个问题。

你还没有提到你正在使用的Ubuntu版本和VLC AndroidComile wiki

这些工具的最新版本。

所以我继续在64位Ubuntu 14.04上进行测试。

这是我做的

安装了最低要求的软件包:

 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 

导航到VLC Android目录并运行:

 ./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 

使不停的失败,但每次与不同的库,我不得不重复./compile.sh命令几次。 但经过与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 

这次有一个不同的错误信息:

 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 

截至本文写作甚至生动 (v0.19.2-2)没有那么高层次的gettext。 所以,我欺骗和手动降级所需的gettext版本到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]) 

还有一个./compile.sh和宾果:

 [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 

但是之后它会永久挂在那里(可能是因为代理配置的冲突)。 ps x透露:

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

所以,我决定取消Ctrl + C ./compile.sh并尝试将项目导入到Android Studio。 启动了AS并选择了“ 打开一个现有的Android Studio项目 ”。 AS也从jcenter和宾果游戏中获取了一些包(这次是真的)!

 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 

按下Shift + F10和:

Android Studio:为Android推出VLC

 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 } 

我把丰富的信息和日志记录在这里,希望这将有助于他人。

在64位的Ubuntu 15.04(生动)是建立succesfull而不使用Android工作室。 只需要改变这一行:

 AM_GNU_GETTEXT_VERSION([0.19.3]) 

 AM_GNU_GETTEXT_VERSION([0.19.2]) 

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

之后失败:

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

如建议:ozbek。

建立VLC播放器是非常复杂的任务,需要花费很多时间。 而错误你得到它只是许多错误中的第一个,你会尝试修复你的方式。

我会建议你一个简单的方法 – 不要自己建立VLC。 主要想法是 – 如果你不想修改VLC源代码,只需从原始的VLC.apk(你可以解压apk)获得.so文件,然后从vlc源文件中拷贝org.videolan.libvlc.*文件即可你的项目。

你可以检查这个项目,以了解它是如何工作的。

过了四天的假期,我找到了建立这个项目的方法。 谢谢ozbek和所有帮助。

  1. 我再次安装Ubuntu 15.10并从https://github.com/hieu19926/vlc克隆它因为我不能从原始站点克隆&#x3002;

  2. 继维基的vlc建立,并遵循上面的ozbek。

  3. 也许你会有卷曲的错误,下面是: 卷曲无法连接到本地端口80或: https : //github.com/rvm/rvm/issues/2989
    这就是说: $echo ip4 >> ~/.curlrc
    并注销,再次登录。

  4. 第2步之后,如果你看到contrib错误,如果是iconv错误,只需要在文件中编辑: $vi vlc/contrib/src/iconv/rules.mak第26行:注释掉这行:

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

并重建,它会比以前运行更长,并成功 在这里输入图像说明

现在我继续找到如何导入libvlc到android studio T_T,任何人可以记住一些lib安装成功后安装,请评论或张贴在这里给大家,谢谢!