Android-------配置IjkPlayer遇到的问题集锦

搭建环境:

Android Studio 3.5.2

compileSdkVersion = 26 
buildToolsVersion = "26.0.2" 
targetSdkVersion = 26
classpath 'com.android.tools.build:gradle:3.0.0'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

编译与调试架构为:x86
NDK:android-ndk-r12b

问题集锦:

1. 

ERROR: Could not find com.android.tools.build:gradle:3.0.0.
Searched in the following locations:
    https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
    https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar
Required by:
    :ijkplayer:unspecified
Add Google Maven repository and sync project
Open File

解决:

在 build.gradle中  

buildscript {
    repositories {
        google() //添加
        jcenter()
        // 添加
        maven{
            url'https://maven.google.com'
        }
    }
}

 2. 

ERROR: All flavors must now belong to a named flavor dimension.
Affected Modules: ijkplayer-example

  在ijkplayer-example的build.gradle中

   添加flavorDimensions "800800",其中的800800为project:build.gradle中的versionCode = 800800 值一样。


3. 

AGPBI: {"kind":"error","text":"error: \u0027@@array/pref_entries_player\u0027 
error: '@@array/pref_entries_player' is incompatible with attribute android:entries (attr) reference.

将android:entries=”@@array/pref_entries_player”改为android:entries=”@array/pref_entries_player”


4. 

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/tv.danmaku.ijk.media.example-wgmg5D9tlc8DxW12h5a2Fw==/base.apk"],nativeLibraryDirectories=[/data/app/tv.danmaku.ijk.media.example-wgmg5D9tlc8DxW12h5a2Fw==/lib/x86, /system/lib, /system/product/lib]]] couldn't find "libijkffmpeg.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
        at java.lang.System.loadLibrary(System.java:1667)
        at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:179)
        at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:190)
        at tv.danmaku.ijk.media.example.activities.VideoActivity.onCreate(VideoActivity.java:137)

解决:需要编译ijkplayer,生成相应的so文件,具体步骤参考:https://blog.csdn.net/silently_frog/article/details/108417227 

5. 

error: undefined reference to 'ijk_soundtouch_translate'
error: undefined reference to 'ijk_soundtouch_destroy'
error: undefined reference to 'ijk_soundtouch_create'

0004-XXX-link-prebuilt-staic-libraries-of-ffmepg.patch中LOCAL_STATIC_LIBRARIES的少给了一个ijksoundtouch

修改文件:ijkplayer/ijkmedia/ijkplayer/Android.mk 

#LOCAL_SHARED_LIBRARIES := ijkffmpeg ijksdl
#LOCAL_STATIC_LIBRARIES := android-ndk-profiler ijksoundtouch
LOCAL_SHARED_LIBRARIES := ijksdl
LOCAL_STATIC_LIBRARIES := android-ndk-profiler ijksoundtouch avformat avcodec swscale swresample avfilter avutil

6. loadLibrariesOnce、native_profileBegin方法变红,导致没法查看方法的实现


查看其引用的IjkMediaPlayer实现类:

包名引入错误:package tv.danmaku.ijk.media.player

将其改为:package ijkmedia.ijkj4a.java.tv.danmaku.ijk.media.player;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值