介绍

ijkplayer是一款非常火的开源视频播放器,android和IOS通用。关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录。ijkplayer现在的版本是0.8.3,当然是使用最新的版本集成了。

编译ijkplayer

关于编译,我是在Ubuntu上编译后拷贝到win10中的,ijkplayer源码需要gcc编译,windows各种不好用,如果使用cynwin还不如在ubuntu下编译。

编译的过程是下载sdk,ndk。设置环境变量后按照github上的说明编译即可,具体可参考这篇文章.

android studio集成ijkplayer

1.导入到你的项目中

android studio打开你的项目,File->Import Module...选择ijkplayer的anroid/ijkplayer目录,ijk-example依赖所有库,所以导入后所有项目都会导入到你的项目中。

2.将android/ijkplayer目录下的tools文件夹也拷贝到自己项目的根目录下。

3. 在ijkplayer-java\src\main\目录下新建一个名为jniLibs的文件夹,将各个ijkplayer-xxx目录中的\src\main\libs目录下的文件夹拷贝到jniLibs文件夹中,如:ijkplayer--armv7a的该目录下包含armeabi-v7a这个文件夹,其中包含了该平台对应的.so文件,如果希望包含所有平台的,就将所有ijkplayer-xxx下的全部拷过来,如果只希望某几个平台的,就只拷贝它们的。

4.将ijkplayer-xxx的目录全部从项目中删除掉,只保留ijkplayer-example、ijkplayer-java、ijkplayer-exo以及tools文件夹,其中ijkplayer-example依赖于后面几个。android studio删除项目需如下图所示:

并将相对应的文件夹删除即可。

5.将ijkplayer-example修改为Module的形式,因为ijkplayer-example本身是一个application工程,默认不生成aar文件,且里面的资源互相依赖,难以像旧版本通过复制所需的几个java文件到自己工程中的方式来使用,所以不如将整个ijkplayer-example转换为我们工程的一个Module。具体方法是:

先修改ijkplayer-example目录下的build.gradle文件,如下:

apply plugin: 'com.android.library'

android {
// http://tools.android.com/tech-docs/new-build-system/tips
//noinspection GroovyAssignabilityCheck
compileSdkVersion rootProject.ext.compileSdkVersion
//noinspection GroovyAssignabilityCheck
buildToolsVersion rootProject.ext.buildToolsVersion lintOptions {
abortOnError false
}
defaultConfig { minSdkVersion 9
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
} buildToolsVersion '25.0.0'
} dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:preference-v7:23.0.1'
compile 'com.android.support:support-annotations:23.0.1' compile 'com.squareup:otto:1.3.8' compile project(':ijkplayer-java')
compile project(':ijkplayer-exo') }

  注意:

  • apply plugin: 'com.android.application'要改为apply plugin: 'com.android.library'
  • applicationId "tv.danmaku.ijk.media.example"这句要去掉
  • compile 'com.android.support:appcompat-v7:25.0.0'

   compile 'com.android.support:preference-v7:23.0.1'

   compile 'com.android.support:support-annotations:23.0.1'

   compile 'com.squareup:otto:1.3.8'

   这几个修改为自己安装的版本。

6.在ijkplayer-example根目录下增加一个gradle.properties文件,内容如下:

POM_NAME=ijkplayer-example
POM_ARTIFACT_ID=ijkplayer-example
POM_PACKAGING=aar

7.在自己的项目中添加依赖项,如下图所示:

完成上述操作,点击async gradle即可。

其他错误:

如果出现

Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

如上类似错误,那是几个项目的sdk版本不同引起的,四个项目包含你自己的项目的compileSdkVersion 、

buildToolsVersion、targetSdkVersion和compile 'com.android.support:appcompat-v7:25.0.0'
几个版本必须要统一,如果不统一会出现各种问题。

android studio集成ijkplayer的更多相关文章

  1. 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco

    Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...

  2. Android Studio集成SVN报错:can't use subversion command line client : svn

    Android Studio集成SVN插件,check out出代码后,每次开启都会在右上角出现如下错误: Can't use Subversion command line client: svn ...

  3. Android Studio集成Genymotion

    Android Studio集成Genymotion比在Eclipse中集成简单多了.主要以下几个步骤: 1.官网先下载Genymotion:http://www.genymotion.com/,下载 ...

  4. 【OpenCV for Android】Android Studio集成OpenCV

    准备工作 1.下载安装Android Studio(过程略). 2.下载Android OpenCV:https://opencv.org/releases.html,找到Android pack点击 ...

  5. Android Studio集成SVN报错:can't use subversion command line client : svn

    Android Studio集成SVN插件,check out出代码后.每次开启都会在右上角出现例如以下错误: Can't use Subversion command line client: sv ...

  6. Android Studio(四):Android Studio集成Genymotion

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  7. Android Studio集成百度地图SDK

    1.建议先阅读百度地图官方的继承指南,针对了Eclipse和Android Studio. 百度官方集成指南 2.下载百度地图SDK Android SDK v4.1.1 下载有两种: 1.一键下载( ...

  8. eclipse + Android Studio 集成 Genymotion 模拟器

    Genymotion 官网 -- android 模拟器https://www.genymotion.com 虚拟机下载安装目录C:\Users\xxx\AppData\Local\Genymobil ...

  9. Android Studio集成Lombok Plugin

    Lombok是Android Studio名列前茅的插件,有啥用,看这个:http://www.blogjava.NET/fancydeepin/archive/2012/07/12/lombok.h ...

随机推荐

  1. java通过freemarker导出包含富文本图片的word文档

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) 参考文章:http://www.cnblogs.com/liaofeifig ...

  2. 分享一个 jmeter ant的build.xml

    <?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-t ...

  3. 将git commit的默认编辑器从nano转为vim

    修改系统的配置 git config --global core.editor vim 针对 git 项目修改 .git/config core 中添加 editor=vim

  4. 基于SSM实现的简易员工管理系统

    之前自学完了JAVA基础,一直以来也没有做什么好玩的项目,最近暑假,时间上比较空闲,所以又学习了一下最近在企业实际应用中比较流行的SSM框架,以此为基础,通过网络课程,学习编写了一个基于SSM实现的M ...

  5. Mysql分页处理(PageHelper)

    第一次做分页处理(完全不知道分页处理到底要做成什么样?) 理解:其实就是前台页面通过传递不同的参数{1.查询的条件.2.查询页数(pageNum),3每页展现的条数(pageSize)},之后我们(只 ...

  6. javascript中用setAttribute给元素添加colspan属性无效

    先附上代码 var tr=document.createElement('TR'); var td=document.createElement('TD'); td.setAttribute('col ...

  7. ps中如何让图层在画布内水平居中

    下图每个小logo图案距离它们的上参考线的距离均为10px,而我们如何让图层在画布内水平居中??? 如上图中三个图层的图案是用来给Html/Css中的background属性使用的,虽然可以通过鼠标拖 ...

  8. Java8-初识Lambda

    廉颇老矣,尚能饭否 Java,这位已经20多岁的编程语言,称得上是编程语言界的老大哥了.他曾经攻城略地,碾压各路编程语言小弟,风光无限,不可一世.现在,也是家大业大,江湖地位,很难撼动. 但是,这依然 ...

  9. 【1414软工助教】团队作业6——展示博客(Alpha版本) 得分榜

    题目 团队作业6--展示博客(Alpha版本) 作业提交情况情况 为所欲为 团队没有提交,其余都按时提交. 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2: ...

  10. 【1414软工助教】团队作业9——测试与发布(Beta版本) 得分榜

    题目 团队作业9--测试与发布(Beta版本) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析& ...