【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 )

这篇具有很好参考价值的文章主要介绍了【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


博客源码 : https://download.csdn.net/download/han1202012/88215731文章来源地址https://www.toymoban.com/news/detail-650401.html





一、Android Studio 打开编译后的 ijkplayer 源码



在 【ijkplayer】编译 Android 版本的 ijkplayer ⑥ ( 进入 ijkplayer-android/android 目录 | 执行 compile-ijk.sh 脚本完成编译 ) 博客中 , 完成了 ijkplayer 的编译 ,

编译后的 Android 项目源码在 https://download.csdn.net/download/han1202012/85008881 下载 ;


下载后 , 解压文件 , 文件目录如下 , 该目录结构就是一个 Android Studio 目录 ;
【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ),ijkplayer,android,ijkplayer,原力计划

在 Android Studio 中打开该项目 ;

【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ),ijkplayer,android,ijkplayer,原力计划





二、重新设置 Android Gradle 插件版本号和 Gradle 构建工具版本号



报错如下信息 :

Unsupported Gradle. 
The project uses Gradle version which is incompatible with Android Studio 2021.3.

Possible solution:
 - Open Gradle wrapper settings, upgrade version to 3.0 or newer and reload the project

修改 Gradle 构建工具版本号 : 根目录下的 gradle/wrapper/gradle-wrapper.properties 中配置 gradle-4.6-all.zip 版本号 ;

#distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

修改 Android Gradle 插件版本号 : 根目录下的 build.gradle 构建脚本中设置 AGP 版本号 ;

buildscript {
    dependencies {
        //classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'com.android.tools.build:gradle:3.2.0'
    }
}




三、设置依赖仓库




1、取消 jcenter 仓库


jcenter 仓库无法访问 , 该程序中只设置了 jcenter 仓库 , 肯定无法下载对应的依赖 , 这里重新设置依赖仓库 ;


2、添加 google 和 mavenCentral 仓库


jcenter 仓库已经停止维护 , 这里重新设置为 google 和 mavenCentral 仓库 ;

在 根目录下的 build.gradle 构建脚本中 , 配置依赖仓库 ;

buildscript {
    repositories {
        google()
        mavenCentral()
        //jcenter()
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        //jcenter()
    }
}

3、添加阿里云仓库


添加阿里云仓库 , 避免出现由于网络导致的某些依赖无法下载的问题 ;

allprojects {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public/'
        }
        maven{
            url 'https://maven.aliyun.com/repository/google/'
        }
        google()
        mavenCentral()
        //jcenter()
    }
}




四、取消 jcenter 上传相关插件



编译时 , 报如下错误 ,

A problem occurred configuring root project 'ijkplayer'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.
     Searched in the following locations:
         https://dl.google.com/dl/android/maven2/com/jfrog/bintray/gradle/gradle-bintray-plugin/1.7/gradle-bintray-plugin-1.7.pom
         https://dl.google.com/dl/android/maven2/com/jfrog/bintray/gradle/gradle-bintray-plugin/1.7/gradle-bintray-plugin-1.7.jar
         https://repo.maven.apache.org/maven2/com/jfrog/bintray/gradle/gradle-bintray-plugin/1.7/gradle-bintray-plugin-1.7.pom
         https://repo.maven.apache.org/maven2/com/jfrog/bintray/gradle/gradle-bintray-plugin/1.7/gradle-bintray-plugin-1.7.jar
     Required by:
         project :

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ),ijkplayer,android,ijkplayer,原力计划

注释掉 在 根目录下 build.gradle 构建脚本中的 android-maven-gradle-plugin 和 gradle-bintray-plugin 插件 , 这是向 jcenter 仓库上传依赖库的 AGP 插件 , 现在已经没有任何作用了 , 直接删除 ;

buildscript {
    dependencies {
        //classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        //classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
    }
}




五、设置编译工具版本号



将编译工具版本号设置为 28.0.2 ;


设置完毕后 , 完整的 根目录 build.gradle 构建脚本如下 :

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        mavenCentral()
        //jcenter()
    }
    dependencies {
        //classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'com.android.tools.build:gradle:3.2.0'

        //classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        //classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public/'
        }
        maven{
            url 'https://maven.aliyun.com/repository/google/'
        }
        google()
        mavenCentral()
        //jcenter()
    }
}

ext {
    compileSdkVersion = 25
    //buildToolsVersion = "25.0.3"
    buildToolsVersion = "28.0.2"

    targetSdkVersion = 25

    versionCode = 800800
    versionName = "0.8.8"
}

wrapper {
    gradleVersion = '2.14.1'
}




六、取消 productFlavors



在 ijkplayer-example 项目中的 build.gradle 中设置了 productFlavors 风味 , 因为这个报错很多 , 直接取消 productFlavors ;

    productFlavors {
        all32 { minSdkVersion 21 }
        all64 { minSdkVersion 21 }
        // armv5 {}
        // armv7a {}
        // arm64 { minSdkVersion 21 }
        // x86 {}
    }

将上述 风格 都注释掉 ;

    productFlavors {
        //all32 { minSdkVersion 21 }
        //all64 { minSdkVersion 21 }
        // armv5 {}
        // armv7a {}
        // arm64 { minSdkVersion 21 }
        // x86 {}
    }




七、设置 build.gradle 中的依赖为 implementation 依赖



将 所有的 Module 中的 compile 依赖都改为 implementation 依赖 ;

尤其是 ijkplayer-example 项目中的 build.gradle 中的 依赖 ;

apply plugin: 'com.android.application'

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 {
        applicationId "tv.danmaku.ijk.media.example"
        minSdkVersion 21
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    //flavorDimensions "minSdkVersion"
    productFlavors {
        //all32 { minSdkVersion 21 }
        //all64 { minSdkVersion 21 }
        // armv5 {}
        // armv7a {}
        // arm64 { minSdkVersion 21 }
        // x86 {}
    }
}

dependencies {

    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:23.0.1'
    implementation 'com.android.support:preference-v7:23.0.1'
    implementation 'com.android.support:support-annotations:23.0.1'

    implementation 'com.squareup:otto:1.3.8'

    implementation project(':ijkplayer-java')
    implementation project(':ijkplayer-exo')

    implementation project(':ijkplayer-armv5')
    implementation project(':ijkplayer-armv7a')
    implementation project(':ijkplayer-x86')

    implementation project(':ijkplayer-armv5')
    implementation project(':ijkplayer-armv7a')
    implementation project(':ijkplayer-arm64')
    implementation project(':ijkplayer-x86')
    implementation project(':ijkplayer-x86_64')

    /*compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.1'
    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')

    all32Compile project(':ijkplayer-armv5')
    all32Compile project(':ijkplayer-armv7a')
    all32Compile project(':ijkplayer-x86')

    all64Compile project(':ijkplayer-armv5')
    all64Compile project(':ijkplayer-armv7a')
    all64Compile project(':ijkplayer-arm64')
    all64Compile project(':ijkplayer-x86')
    all64Compile project(':ijkplayer-x86_64')*/

    // compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    // compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'

    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'

    // armv5Compile project(':player-armv5')
    // armv7aCompile project(':player-armv7a')
    // arm64Compile project(':player-arm64')
    // x86Compile project(':player-x86')
    // x86_64Compile project(':player-x86_64')
}





八、编译应用



在 Gradle 面板中 , 执行 ijkplayer-example 项目下的 Tasks/build/assemble 任务 , 即可编译生成 debug 版本的 apk 安装包 ;

【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ),ijkplayer,android,ijkplayer,原力计划


博客源码 : https://download.csdn.net/download/han1202012/88215731


到了这里,关于【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android反编译修改apk并重新打包

            Apktool 是反编译Apk的第三方工具,它可以反编译资源,并在修改之后重新生成Apk          注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为1.8或更高版本。 1. 使用apktool.jar反编译解包 将需要编译的apk和apktool.jar放到同一个文件夹下 在cmd终端,cd到此目录下

    2023年04月13日
    浏览(36)
  • Android将Uri转为路径字符串(适配安卓全版本)并使用第三方应用打开文件(适配Android7.0+)

    做这个功能时在网上找了无数篇例子,有些方法是有问题的,故自己写一篇完整实现的总结,作备忘也作案例。顺便说一句,Android对存储权限的给予真的越来越严格 目录 1.Uri转为路径String以获得文件名  2.获取文件后缀名 3.通过后缀名获取文件MIME类型  4.设置Intent的Uri与权限

    2024年02月19日
    浏览(33)
  • FFmpeg: 自实现ijkplayer播放器--06封装打开和关闭stream

    流程图 stream open 初始化SDL以允许⾳频输出; 初始化帧Frame队列 初始化包Packet队列 初始化时钟Clock 初始化音量 创建解复用读取线程read_thread 创建视频刷新线程video_refresh_thread

    2024年04月15日
    浏览(19)
  • hive修改spark版本重新编译,hive3.1.3 on spark3.3.0

    我的是hive3.1.3 spark3.3.0(请先将自己的 hive on mr 搭建完场,有简单了解在搞这个) 1.下载hive源码 2. maven编译:mvn clean -DskipTests package -Pdist (idea 编译不行,能行的评论告诉我) 右键 - Git Bash idea打开项目,右键pom 添加成maven项目 修改pom中自己所需依赖的版本

    2023年04月21日
    浏览(40)
  • IJKPLAYER源码分析-OpenGL ES渲染

    IJKPLAYER在视频render之时,并非简单使用SDL渲染API,而是用了OpenGL ES,再分别在Android和iOS平台做视频的显示; 一言以蔽之,OpenGL ES并不能做到直接在窗口上render并显示,而是需要一个中间媒介。这个中间媒介,将OpenGL ES的render结果,最终输出到窗口上显示; 在Android端,这个中

    2024年04月11日
    浏览(25)
  • ijkplayer 源码分析(2):消息分发处理机制

    上篇博客 ijkplayer 源码分析(1):初始化流程 的 4.1.1 ijkmp_create() 的部分简要说明了下 ijkplayer 的消息处理机制,本文再根据源码进行详细分析,搞清楚其消息机制及处理流程。 播放器是一个较为复杂的多线程工程,如数据读取线程、音频解码线程、视频解码线程、视频播放

    2023年04月08日
    浏览(25)
  • 数据湖架构Hudi(二)Hudi版本0.12源码编译、Hudi集成spark、使用IDEA与spark对hudi表增删改查

    Hadoop 3.1.3 Hive 3.1.2 Flink 1.13.6,scala-2.12 Spark 3.2.2,scala-2.12 2.1.1 环境准备 2.1.2 下载源码包 2.1.3 在pom文件中新增repository加速依赖下载 在pom文件中修改依赖的组件版本: 2.1.4 修改源码兼容hadoop3并添加kafka依赖 Hudi默认依赖的hadoop2,要兼容hadoop3,除了修改版本,还需要修改如下代

    2024年02月06日
    浏览(43)
  • Android 编译版本升级target 33

    应用编译版本: 环境编译版本: kotlin版本未改变,仅升级了,gradle编译版本。 build.gradle配置: gradle-wrapper.properties 配置: 升级步骤二:解决library编译问题 1、修改 library 的 build.gradle 文件 编译版本修改 kotlin配置修改,在build.gradle增加配置 viewBinding 不过可以全部配置。 2、

    2024年02月05日
    浏览(146)
  • android10.0(Q) MTK 6765 user版本打开root权限

    前言 相比较 Android8.1、9.0 而言,Android10.0 版本 的 root变得相当麻烦,10.0 中引入了动态分区机制,同样的要想完全 adb root,需要 fastboot 解锁,然后关闭 verity 才能 adb remount 成功。我尝试和之前一样修改 fstab.in.mt6765 中的 ro 和 rw 初始值,容易导致无法正常开机,在这耗费了很

    2024年01月25日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包