编译ijkplayer
1、环境
以下工具请到移动硬盘下载,或者参考笔记:尝试ijkplayer环境搭建工具下载地址
腾讯云 Ubuntu Server 16.04.1 LTS 64位 可通过管理平台的登录打开用户界面版
jdk-8u112-linux-x64.tar.gz
android-studio-ide-145.3276617-linux.zip
android-ndk-r10e-linux-x86_64.bin
android-sdk_r24.4.1-linux.tgz
gradle-2.14.1-bin.zip
上述工具整到一个目录下如/data,解压缩即可。如下:
![Image 1][]
但注意,最后几部执行./compile-ffmpeg.sh all时,会报错,export: (64-bit): bad variable name。这里就需要把ANDROID_NDK/RELEASE.TXT的r10e-rc4 (64-bit)的(64-bit)去掉才不错的
2、命令执行
执行sudo -s ,之后可以不带sudo执行。
修改文本使用sudo gedit /etc/profile
环境变量同时需要修改sudo gedit ~/.bashrc
3、环境变量
/etc/profile 和 ~/.bashrc 最后加上下面的环境变量,并且source /etc/profile , source ~/.bashrc 此时不用带sudo,因为执行了sudo -s
export JAVA_HOME=/home/ubuntu/Documents/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export NDK=/home/ubuntu/Documents/android-ndk-r10e
export PATH=$NDK:$PATH
export ANDROID_NDK=/home/ubuntu/Documents/android-ndk-r10e
export PATH=$ANDROID_NDK:$PATH
export ANDROID_SDK=/home/ubuntu/Documents/android-sdk-linux
export PATH=$ANDROID_SDK:$PATH
![Image 1][]
4、安卓环境问题
需要执行sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
sudo apt-get install git
sudo apt-get install yasm
并修改 /opt/ Android-studio/bin/studio.sh
# ——————————————————————————————————-
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, ../jre, JDK_HOME, JAVA_HOME, “java” in PATH.
# ——————————————————————————————————-
# 在这个位置插入
JDK_HOME=/opt/java/jdk1.8.0_112
if [ -n “$STUDIO_JDK” -a -x “$STUDIO_JDK/bin/java” ]; then
if [ -n “$STUDIO_JDK” -a -x “$STUDIO_JDK/bin/java” ]; then
这一步非常关键, 否则无法启动 studio.sh, 我就是在这里折腾很很久.
打开terminal,输入以下命令
cd /opt/android-studio/bin/
sudo chmod 777 studio.sh
sudo studio.sh
5、图形界面打开androidstudio后
出现unable to access android sdk add-on list 错误,选择cancel
解决方案:在 Android Studio 安装目录 bin/idea.properties 文件最后追加一句disable.android.first.run=true
然后再次打开,不报错。
紧接着会提示Your Android SDK is missing, out of date, or is missing templates.You can configure your SDK via Configure | Project Defaults | Project Structure | SDKs
此时点击右下侧Configure -> Project Defaults -> Project Structure 可以看到这个页面包含两个指定的位置 1. Android SDK 2. JDK 那就指定把.
此时配置android-sdk_r24.4.1-linux.tgz解压缩的文件(解压后为android-sdk-linux)
同时在android studio中配置ndk、配置jdk
此时回到初始界面,随便选择一个工程。
点击sdk manager
![Image 1][]
将sdk manage窗口
![Image 1][]
下面的这三个全部下载。
重新检查一遍file->project structure下的jdk、sdk。
![Image 1][]
关闭android studio
6、编译ijkplayer
注意,如果之前执行了sudo -s。下面执行命令如果用sudo ./XXXX.sh会报找不到ANDROID_SDK和AN
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
本次编译的版本是0.7.4
git checkout -B latest k0.7.4
./init-android.sh
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh all
修改android/ijkplayer下面的build.properties,对照修改(如果此文件存在android {},则连同其和括号内的内容都注释掉)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build2.1.3’
classpath ‘com.github.dcendents1.4’
//此版本的大小根据 https://github.com/dcendents/android-maven-gradle-plugin/releases网址的版本对应gradle而定
classpath ‘com.jfrog.bintray.gradle1.7’
//此版本大小根据 https://github.com/bintray/gradle-bintray-plugin/releases网址的版本的时间对应上述maven-gradle-plugin的时间而定
}
}
allprojects {
repositories {
jcenter()
}
}
ext {
compileSdkVersion = 24
buildToolsVersion = “25.0.2”
targetSdkVersion = 23
versionCode = 700400
versionName = “0.7.4”
}
wrapper {
gradleVersion = ‘2.14.1’
}
再次打开android studio ,选择open existing project, 定位到 /data/ijkplayer-android/android/ijkplayer,然后打开该项目,
然后执行build菜单下的clean project
然后ijkplayer下存在了so、aar等文件和build文件夹
7、完成
如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件
编译成功后将目录下android/ijkplayer项目导入Android Studio即可运行
如果不行,重复步骤5
关于遇到的错误
1、fail resolve com.android.support24.+ 据参考资料[1][2]的提示,需要通过Android SDK Manager安装Android Support Repository
2、提示fail to find build tools android studio sdkmanager中 安装 下载sdk tools。或者重复步骤5
3、 Could not find method android() for arguments 主工程中去掉
android { compileSdkVersion 19 buildToolsVersion ‘19.0.1’}
4、SDK location not found. Define location with sdk.dir in the local.properties file or with 重新打开android studio,配置sdk地址(如截图),jdk等
5、其他错误 需检查gradle版本是会否正确,要按照作者在github的ijkplayer下的给的环境设置
如需 我编译的源码及编译后文件
加群425783133
[Image 1]:
还没有评论,来说两句吧...