【错误记录】记录处理 ijkplayer 依赖问题 ( jcenter 仓库问题 | 查找并配置 ijkplayer 源 | 手动在本地配置 ijkplayer 依赖库 )

今天早上编译 Android 程序 , 发现无法编译通过 ijkplayer 依赖无法正常下载 ;

项目中使用了如下依赖 :

代码语言:javascript
复制
    implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

上周还能运行 , 周末回来 , 周一无法运行 ;

记录下排查流程 ;

ijkplayer 远程仓库无法使用 , 在本地配置 ijkplayer 库 ;

一、jcenter 仓库问题

1、报错信息

编译后 , 先报 jcenter 仓库问题 , 该仓库已经停用

代码语言:javascript
复制
      > Could not resolve tv.danmaku.ijk.media:ijkplayer-java:0.8.8.
         > Could not get resource 'https://jcenter.bintray.com/tv/danmaku/ijk/media/ijkplayer-java/0.8.8/ijkplayer-java-0.8.8.pom'.

完整报错信息 :

代码语言:javascript
复制
FAILURE: Build completed with 9 failures.

1: Task failed with an exception.

在这里插入图片描述

2、解决方案

报错中提示 https://jcenter.bintray.com/tv/danmaku/ijk/media/ijkplayer-java/0.8.8/ijkplayer-java-0.8.8.pom 无法访问 , 在浏览器中输入该网址 , 查看网站是否能访问 ;

在这里插入图片描述

直接将 根目录下 build.gradle 中的 buildscript 和 allprojects 下的 jcenter 仓库注释掉 , 这个仓库已经停止服务 , 无法访问 ;

在这里插入图片描述

注释之后 , 显示开始下载 ijkplayer 的依赖 , 等待一段时间 , 看是否能下载完毕 ;

在这里插入图片描述

继续下载 , 还是失败 ;

代码语言:javascript
复制
Failed to resolve: tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8
Show in Project Structure dialog
Affected Modules: app

Failed to resolve: tv.danmaku.ijk.media:ijkplayer-exo:0.8.8
Show in Project Structure dialog
Affected Modules: app

Failed to resolve: tv.danmaku.ijk.media:ijkplayer-java:0.8.8
Show in Project Structure dialog
Affected Modules: app

二、查找并配置 ijkplayer 源


https://mvnrepository.com/ 网站中查询 Maven 依赖 ,

搜索 ijkplayer ,

在这里插入图片描述

点进去之后 , 发现有 三个仓库 可供下载 ;

在这里插入图片描述

点击 Repository 一栏中的 Spring Plugins 按钮 , 可以查看该仓库的地址 https://repo.spring.io/plugins-release/ ;

在这里插入图片描述

将该仓库配置到 根目录下的 build.gradle 中的 allprojects 中 ,

代码语言:javascript
复制
maven { url "https://repo.spring.io/plugins-release/" }

完整的配置如下 : 之前的 jcenter 已经被注释 ;

代码语言:javascript
复制
allprojects {
    repositories {
        google()
        mavenCentral()
        //jcenter() // Warning: this repository is going to shut down soon
        // ijkplayer 仓库
        maven { url "https://repo.spring.io/plugins-release/" }
    }
}

三、手动在本地配置 ijkplayer 依赖库


参考在 https://blog.csdn.net/shulianghan/category_11697316.html 专栏中编译的 ijkplayer 依赖库版本 , 将编译后的依赖库导入到本地 ;

依赖库下载地址 : https://download.csdn.net/download/han1202012/85008881

将目录中的 ijkplayer-armv7a , ijkplayer-java , tools 目录 , 拷贝到 Android Studio 的根目录 ;

在这里插入图片描述

打开 根目录下的 build.gradle 目录 , 将其拷贝到 主应用的 根目录下的 build.gradle 中 , 最终可编译成功 ;

代码语言:javascript
复制
ext {
    compileSdkVersion = 25
    buildToolsVersion = "25.0.3"
targetSdkVersion = 25

versionCode = 800800
versionName = "0.8.8"

}