编译ijkplayer

柔情只为你懂 2022-09-29 10:59 181阅读 0赞

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][]

1489567022_3128.png

但注意,最后几部执行./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

1489567251_8314.png

![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

1489567023_8520.png

![Image 1][]

将sdk manage窗口

1489567023_5691.png

![Image 1][]

下面的这三个全部下载。

重新检查一遍file->project structure下的jdk、sdk。

1489567340_7574.png

![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.build:gradle:2.1.3’

classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.4’

//此版本的大小根据 https://github.com/dcendents/android-maven-gradle-plugin/releases网址的版本对应gradle而定

classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.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.support:appcompat-v7:24.+ 据参考资料[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]:

发表评论

表情:
评论列表 (有 0 条评论,181人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ijkplayer】介绍

    【ijkplayer】介绍 0x1 系统架构 ijkplayer是由b站开源的播放器项目,底层基于ffmpeg, 支持Android和iOS。下面我们来简单介绍一下

    相关 iOS-ijkplayer集成

    > ijkplayer是bibiliB站开源的一个三方,封装好了ffmpeg,可以去面向对象去开发。 > > 苹果提供了:AVPlayer播放不了直播文件。需要自己去基于ff

    相关 编译ijkplayer

    1、环境 以下工具请到移动硬盘下载,或者参考笔记:尝试ijkplayer环境搭建工具下载地址 腾讯云 Ubuntu Server 16.04.1 LTS 64位 可通过管理