下面是我在编译vlc-android时遇到一些问题,有些还是蛮坑的,浪费了好多时间。
1、下载完成vlc-android之后,运行compile.sh,程序会直接开始下载gradle的最新版本,即使在vlc-android文件夹下已经有了该zip压缩文件但程序依然会无视这个压缩文件继续下载,这回很浪费时间以及系统的空间,解决这个问题,我们首先要进入compile.sh看看里面的shell是怎么写的。
`if [ ! -d "gradle/wrapper" ]; then
diagnostic "Downloading gradle"
GRADLE_VERSION=3.4.1
GRADLE_URL=https://download.videolan.org/pub/contrib/gradle/gradle-${GRADLE_VERSION}-bin.zip`
根据上面可以看到,程序找不到叫做gradle/wrapper的文件夹,即你没有安装完成gradle,就会下载。如果你已经下载完成了gradle-bin的zip压缩文件,我建议接下来最好使用手动安装。
首先进入compile.sh里,找到这么一段代码
if [ ! -d "gradle/wrapper" ]; then
diagnostic "Downloading gradle"
GRADLE_VERSION=3.4.1
GRADLE_URL=https://download.videolan.org/pub/contrib/gradle/gradle-${GRADLE_VERSION}-bin.zip
wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL}
checkfail "gradle: download failed"
unzip -o gradle-${GRADLE_VERSION}-bin.zip
checkfail "gradle: unzip failed"
cd gradle-${GRADLE_VERSION}
./bin/gradle wrapper
checkfail "gradle: wrapper failed"
./gradlew -version
checkfail "gradle: wrapper failed"
cd ..
mkdir -p gradle
mv gradle-${GRADLE_VERSION}/gradle/wrapper/ gradle
mv gradle-${GRADLE_VERSION}/gradlew .
chmod a+x gradlew
rm -rf gradle-${GRADLE_VERSION}-bin.zip
fi
先确认你已经下载了gradle-3.4.1bin.zip
这个文件,之后就可以把一些多余的代码删除之后留下:
cd gradle-${GRADLE_VERSION}
./bin/gradle wrapper
#./gradlew -version
cd ..
mkdir -p gradle
mv gradle-${GRADLE_VERSION}/gradle/wrapper/ gradle
mv gradle-${GRADLE_VERSION}/gradlew .
chmod a+x gradlew
rm -rf gradle-${GRADLE_VERSION}-bin.zip
在这一段代码里可以看到有一个叫做./gradlew -version的命令下载一个叫做gradle-3.4.1-all.zip的文件,不过我亲自使用之后发现下载会非常非常慢,所以建议去百度找国内的资源下载。下载完成之后放gradle/wrapper这个文件夹下,之后就可以继续使用compile.sh进行vlc的编译了。
2、对于使用linux虚拟机的朋友有个建议,千万不能在windows下clone vlc的源码,因为在下载时有一些文件包括.sh,.m4,.patch的shell文件会被转换成windows编码模式,这时候你再把这些文件在虚拟机上跑,linux想要运行这些问题时会出现编码的问题,或者它会认为这些文件已经损坏或者不存在,除非你在linux下打开并且使用linux的编码方式保存(不太建议,因为这些文件实在是太多了)。所以还是建议在虚拟机上完成这些操作。
———-先记录到这,之后遇到啥问题再继续补充