CarGuo / GSYVideoPlayer

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,16k page size,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
https://juejin.cn/user/817692379985752/posts
Apache License 2.0
20.1k stars 4.18k forks source link

引用编译冲突 #1828

Closed dujingxue1997 closed 5 years ago

dujingxue1997 commented 5 years ago

问题描述:

编译冲突

问题机型/系统:

GSY依赖版本

//完整版引入 播放器 compile('com.shuyu:GSYVideoPlayer:6.0.1') { exclude module: 'support-v4' exclude group: 'com.android.support' }

Demo中的复现步骤

CarGuo commented 5 years ago

应该是你的项目里也有其他地方存在吧…

dujingxue1997 commented 5 years ago

我应该怎么去寻找冲突地方,或者怎么解决这个问题?因为我看dependencies 这个其他项目的冲突

CarGuo commented 5 years ago

例如 gradlew -q app:dependencies 可以看看项目的依赖之类的

dujingxue1997 commented 5 years ago

确实看了这个没有找到问题所在,哪里冲突了 +--- com.shuyu:GSYVideoPlayer:6.0.1 | +--- com.shuyu:gsyVideoPlayer-java:6.0.1 | | +--- tv.danmaku.ijk.media:ijkplayer-java:0.8.8 | | +--- com.andkulikov:transitionseverywhere:1.7.0 | | +--- com.shuyu:gsyvideoplayer-androidvideocache:6.0.1 | | --- com.shuyu:gsyVideoPlayer-base:6.0.1 | | --- tv.danmaku.ijk.media:ijkplayer-java:0.8.8 | +--- com.shuyu:GSYVideoPlayer-exo2:6.0.1 | | +--- com.google.android.exoplayer:exoplayer:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-dash:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-hls:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | --- com.google.android.exoplayer:exoplayer-ui:2.8.4 | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | +--- com.google.android.exoplayer:extension-rtmp:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | --- net.butterflytv.utils:rtmp-client:3.0.1 | | --- com.shuyu:gsyVideoPlayer-base:6.0.1 (*) | +--- com.shuyu:gsyVideoPlayer-armv5:6.0.1 | +--- com.shuyu:gsyVideoPlayer-armv7a:6.0.1 | +--- com.shuyu:gsyVideoPlayer-arm64:6.0.1 | +--- com.shuyu:gsyVideoPlayer-x64:6.0.1 | --- com.shuyu:gsyVideoPlayer-x86:6.0.1

CarGuo commented 5 years ago

你只依赖的gsy?没有其他依赖??

dujingxue1997 commented 5 years ago

不是,其他的有依赖,但是我没找到 哪里有冲突 +--- com.android.support:multidex:1.0.1 +--- com.android.support:support-v13:23.0.0 | --- com.android.support:support-v4:23.0.0 -> 25.4.0 | +--- com.android.support:support-compat:25.4.0 -> 27.0.2 | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | --- android.arch.lifecycle:runtime:1.0.3 | | +--- android.arch.lifecycle:common:1.0.3 | | --- android.arch.core:common:1.0.0 | +--- com.android.support:support-media-compat:25.4.0 | | +--- com.android.support:support-annotations:25.4.0 -> 28.0.0 | | --- com.android.support:support-compat:25.4.0 -> 27.0.2 () | +--- com.android.support:support-core-utils:25.4.0 -> 27.0.2 | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | --- com.android.support:support-compat:27.0.2 () | +--- com.android.support:support-core-ui:25.4.0 -> 27.0.2 | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | --- com.android.support:support-compat:27.0.2 () | --- com.android.support:support-fragment:25.4.0 -> 27.0.2 | +--- com.android.support:support-compat:27.0.2 () | +--- com.android.support:support-core-ui:27.0.2 () | +--- com.android.support:support-core-utils:27.0.2 () | --- com.android.support:support-annotations:27.0.2 -> 28.0.0 +--- com.android.support:support-annotations:22.2.0 -> 28.0.0 +--- com.android.support:design:23.4.0 | +--- com.android.support:recyclerview-v7:23.4.0 -> 27.0.2 | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | +--- com.android.support:support-compat:27.0.2 () | | --- com.android.support:support-core-ui:27.0.2 () | +--- com.android.support:appcompat-v7:23.4.0 -> 27.0.2 | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | +--- com.android.support:support-core-utils:27.0.2 () | | +--- com.android.support:support-fragment:27.0.2 () | | +--- com.android.support:support-vector-drawable:27.0.2 | | | +--- com.android.support:support-annotations:27.0.2 -> 28.0.0 | | | --- com.android.support:support-compat:27.0.2 () | | --- com.android.support:animated-vector-drawable:27.0.2 | | +--- com.android.support:support-vector-drawable:27.0.2 () | | --- com.android.support:support-core-ui:27.0.2 () | --- com.android.support:support-v4:23.4.0 -> 25.4.0 () +--- com.android.support:appcompat-v7:23.4.0 -> 27.0.2 () +--- de.greenrobot:eventbus:2.4.0 +--- org.greenrobot:eventbus:3.0.0 +--- com.google.code.gson:gson:2.6.2 -> 2.7 +--- com.fasterxml.jackson.core:jackson-databind:2.6.4 | +--- com.fasterxml.jackson.core:jackson-annotations:2.6.0 | --- com.fasterxml.jackson.core:jackson-core:2.6.4 +--- com.facebook.fresco:fresco:0.13.0 | +--- com.facebook.fresco:drawee:0.13.0 | | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | | --- com.facebook.fresco:fbcore:0.13.0 | +--- com.facebook.fresco:fbcore:0.13.0 | --- com.facebook.fresco:imagepipeline:0.13.0 | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | +--- com.facebook.fresco:imagepipeline-base:0.13.0 | | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | | --- com.facebook.fresco:fbcore:0.13.0 | --- com.facebook.fresco:fbcore:0.13.0 +--- com.facebook.fresco:webpsupport:0.13.0 | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | +--- com.facebook.fresco:imagepipeline-base:0.13.0 () | --- com.facebook.fresco:fbcore:0.13.0 +--- com.facebook.fresco:animated-webp:0.13.0 | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | +--- com.facebook.fresco:imagepipeline-base:0.13.0 () | +--- com.facebook.fresco:fbcore:0.13.0 | --- com.facebook.fresco:animated-base:0.13.0 | +--- com.android.support:support-v4:23.2.1 -> 25.4.0 () | +--- com.facebook.fresco:imagepipeline-base:0.13.0 () | +--- com.facebook.fresco:fbcore:0.13.0 | --- com.facebook.fresco:imagepipeline:0.13.0 () +--- com.squareup.picasso:picasso:2.5.2 +--- com.nostra13.universalimageloader:universal-image-loader:1.9.4 +--- org.xutils:xutils:3.3.38 +--- com.zhy:okhttputils:2.6.2 | --- com.squareup.okhttp3:okhttp:3.3.1 -> 3.8.0 | --- com.squareup.okio:okio:1.13.0 +--- com.squareup.okhttp3:okhttp:3.3.1 -> 3.8.0 () +--- com.google.dagger:dagger-compiler:2.0.1 | +--- com.google.dagger:dagger:2.0.1 | | --- javax.inject:javax.inject:1 | +--- com.google.dagger:dagger-producers:2.0-beta | | +--- com.google.dagger:dagger:2.0 -> 2.0.1 () | | --- com.google.guava:guava:18.0 | --- com.google.guava:guava:18.0 +--- com.bartoszlipinski.recyclerviewheader:library:1.2.0 | --- com.android.support:recyclerview-v7:22.0.0 -> 27.0.2 () +--- de.hdodenhof:circleimageview:2.1.0 +--- com.daimajia.swipelayout:library:1.2.0 +--- me.relex:circleindicator:1.2.2 +--- com.github.halysongoncalves:pugnotification:1.8.0 | +--- com.android.support:support-annotations:23.0.1 -> 28.0.0 | --- com.android.support:support-v4:23.0.1 -> 25.4.0 () +--- com.kennyc:multistateview:1.1 | --- com.android.support:support-annotations:+ -> 28.0.0 +--- com.commit451:PhotoView:1.2.4 | --- com.android.support:support-v4:23.0.1 -> 25.4.0 () +--- project :library-photocropper +--- project :library-pullscrollview +--- project :library-sinavideo_playersdk | --- project :library-sinavideo_playercore_v2.0 +--- project :library-ultra-pull-to-refresh | --- in.srain.cube:clog:1.0.2 +--- project :library-staggeredgrid | --- com.android.support:appcompat-v7:22.2.0 -> 27.0.2 () +--- project :library-tusdk | +--- com.android.support:support-v4:22.2.0 -> 25.4.0 () | +--- com.android.support:recyclerview-v7:23.4.0 -> 27.0.2 () | --- com.nostra13.universalimageloader:universal-image-loader:1.9.4 +--- project :library-xutils | --- org.apache.httpcomponents:httpclient-android:4.3.5.1 +--- project :library-Scrollable +--- project :library-looperviewpager | --- com.android.support:appcompat-v7:22.0.0 -> 27.0.2 () +--- com.lzy.widget:view-core:0.2.1 | +--- com.android.support:appcompat-v7:23.1.1 -> 27.0.2 () | +--- com.android.support:recyclerview-v7:23.1.1 -> 27.0.2 () | --- com.android.support:support-annotations:23.1.1 -> 28.0.0 +--- project :library-parallaxviewpager | --- com.android.support:support-v4:22.2.0 -> 25.4.0 () +--- project :flowlayout-lib +--- com.google.code.findbugs:jsr305:3.0.0 +--- project :Qupaisdk-release +--- com.github.ctiao:DanmakuFlameMaster:0.4.4 +--- com.kyleduo.switchbutton:library:1.4.0 | --- com.android.support:appcompat-v7:23.1.0 -> 27.0.2 () +--- project :BaseLibrary-release +--- project :VideoPlayLibrary-release +--- project :UserLibrary-release +--- com.upyun:upyun-android-sdk:2.0.5 | --- com.squareup.okhttp3:okhttp:3.8.0 () +--- com.github.castorflex.verticalviewpager:library:19.0.1 | --- com.android.support:support-v4:19.0.0 -> 25.4.0 () +--- com.flyco.tablayout:FlycoTabLayout_Lib:2.0.6 +--- com.qiniu:happy-dns:0.2.+ -> 0.2.13 +--- com.qiniu.pili:pili-android-qos:0.8.+ -> 0.8.20 +--- com.android.support:support-v4:25.4.0 () +--- com.github.bumptech.glide:glide:3.7.0 -> 4.5.0 | +--- com.github.bumptech.glide:gifdecoder:4.5.0 | | --- com.android.support:support-annotations:27.0.2 -> 28.0.0 | +--- com.github.bumptech.glide:disklrucache:4.5.0 | +--- com.github.bumptech.glide:annotations:4.5.0 | --- com.android.support:support-fragment:27.0.2 () +--- com.gongwen:marqueelibrary:1.1.1 | --- com.android.support:appcompat-v7:25.3.1 -> 27.0.2 () +--- com.github.frankiesardo:linearlistview:1.0.1 +--- com.gjiazhe:PanoramaImageView:1.0 | --- com.android.support:appcompat-v7:25.1.0 -> 27.0.2 () +--- com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34 +--- org.sufficientlysecure:html-textview:3.5 | --- com.android.support:support-annotations:25.0.0 -> 28.0.0 +--- cn.jzvd:jiaozivideoplayer:6.2.3 +--- com.gyf.immersionbar:immersionbar:2.3.2-beta02 +--- com.squareup.retrofit2:retrofit:2.1.0 -> 2.3.0 | --- com.squareup.okhttp3:okhttp:3.8.0 () +--- com.squareup.retrofit2:converter-gson:2.3.0 | +--- com.squareup.retrofit2:retrofit:2.3.0 () | --- com.google.code.gson:gson:2.7 +--- com.github.hackware1993:MagicIndicator:1.5.0 | --- com.android.support:appcompat-v7:23.4.0 -> 27.0.2 () +--- com.shuyu:GSYVideoPlayer:6.0.1 | +--- com.shuyu:gsyVideoPlayer-java:6.0.1 | | +--- tv.danmaku.ijk.media:ijkplayer-java:0.8.8 | | +--- com.andkulikov:transitionseverywhere:1.7.0 | | +--- com.shuyu:gsyvideoplayer-androidvideocache:6.0.1 | | --- com.shuyu:gsyVideoPlayer-base:6.0.1 | | --- tv.danmaku.ijk.media:ijkplayer-java:0.8.8 | +--- com.shuyu:GSYVideoPlayer-exo2:6.0.1 | | +--- com.google.android.exoplayer:exoplayer:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-dash:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-hls:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.8.4 | | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | --- com.google.android.exoplayer:exoplayer-ui:2.8.4 | | | --- com.google.android.exoplayer:exoplayer-core:2.8.4 | | +--- com.google.android.exoplayer:extension-rtmp:2.8.4 | | | +--- com.google.android.exoplayer:exoplayer-core:2.8.4 | | | --- net.butterflytv.utils:rtmp-client:3.0.1 | | --- com.shuyu:gsyVideoPlayer-base:6.0.1 () | +--- com.shuyu:gsyVideoPlayer-armv5:6.0.1 | +--- com.shuyu:gsyVideoPlayer-armv7a:6.0.1 | +--- com.shuyu:gsyVideoPlayer-arm64:6.0.1 | +--- com.shuyu:gsyVideoPlayer-x64:6.0.1 | --- com.shuyu:gsyVideoPlayer-x86:6.0.1 +--- com.github.LuckSiege.PictureSelector:picture_library:v2.2.3 | +--- com.github.LuckSiege.PictureSelector:ucrop:v2.2.3 | | +--- com.android.support:appcompat-v7:27.0.2 () | | +--- com.android.support:recyclerview-v7:27.0.2 () | | --- com.github.bumptech.glide:glide:4.5.0 () | +--- com.android.support:appcompat-v7:27.0.2 () | +--- com.android.support:recyclerview-v7:27.0.2 () | +--- com.github.bumptech.glide:glide:4.5.0 () | +--- io.reactivex.rxjava2:rxjava:2.0.5 | | --- org.reactivestreams:reactive-streams:1.0.0 | --- io.reactivex.rxjava2:rxandroid:2.0.1 | --- io.reactivex.rxjava2:rxjava:2.0.1 -> 2.0.5 (*) +--- com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1 +--- com.scwang.smartrefresh:SmartRefreshHeader:1.0.5.1 +--- com.github.razerdp:BasePopup:2.1.4 +--- com.youth.banner:banner:1.4.10 +--- :alipaySdk-15.5.9-20181123210601: +--- com.github.newcaoguo:EasyRollingNumber:1.0 +--- com.contrarywind:Android-PickerView:4.1.7 | +--- com.contrarywind:wheelview:4.0.9 | | --- com.android.support:support-annotations:28.0.0 | --- com.android.support:support-annotations:28.0.0 --- com.antfortune.freeline:runtime-no-op:0.8.7

CarGuo commented 5 years ago

我这边也没有看出来,或者你clean下再试试,看提示上说的是 so 冲突

dujingxue1997 commented 5 years ago

嗯,我试过clean了,可以成功,就是运行不起来 Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForAliDebug'.

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK lib/armeabi-v7a/libijkplayer.so File1: C:\Users\Dudo.android\build-cache\2da8fdd3bd3878c69c025bd1fde9c4e33dea1c3e\output\jni File2: C:\Users\Dudo.android\build-cache\4f2e3240fba2eb886a0ebe15bf7e1d9ba44877e3\output\jni 就报这个错

CarGuo commented 5 years ago

目前我也没看出这是哪里导致的😂

dujingxue1997 commented 5 years ago

我根据网上有过类似问题。加上这些,还是一直报其他的错,然后还要一直加?

packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt'

    exclude 'META-INF/DEPENDENCIES'
    pickFirst 'lib/armeabi-v7a/libijkplayer.so'
    pickFirst 'lib/arm64-v8a/libijkplayer.so'
    pickFirst 'lib/arm64-v8a/libijkffmpeg.so'
    pickFirst 'lib/armeabi-v7a/libijksdl.so'
    pickFirst 'lib/armeabi-v7a/libijkffmpeg.so'
    pickFirst 'lib/arm64-v8a/libijksdl.so'
}
CarGuo commented 5 years ago

你试试

implementation 'com.shuyu:GSYVideoPlayer:6.0.3'

或者

implementation 'com.shuyu:GSYVideoPlayer:6.0.0-beta'

dujingxue1997 commented 5 years ago

把这些加上就可以运行了,具体不知道是什么问题。=-=

GIAO!!!!!!!

CarGuo commented 5 years ago

pickFirst 是代表当有冲突时选择第一个····

dujingxue1997 commented 5 years ago

然后播放的时候报这个错误 java.lang.NoSuchMethodError: No virtual method getTcpSpeed()J in class Ltv/danmaku/ijk/media/player/IjkMediaPlayer; or its super classes (declaration of 'tv.danmaku.ijk.media.player.IjkMediaPlayer' appears in /data/app/cn.wdquan-ptBVHA9HKw8KsyZNXuBWyw==/base.apk:classes21.dex) at com.shuyu.gsyvideoplayer.player.IjkPlayerManager.getNetSpeed(IjkPlayerManager.java:178) at com.shuyu.gsyvideoplayer.GSYVideoBaseManager.getNetSpeed(GSYVideoBaseManager.java:417) at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getNetSpeed(GSYVideoView.java:949) at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getNetSpeedText(GSYVideoView.java:958) at com.shuyu.gsyvideoplayer.video.base.GSYVideoControlView.onBufferingUpdate(GSYVideoControlView.java:617) at com.shuyu.gsyvideoplayer.GSYVideoBaseManager$3.run(GSYVideoBaseManager.java:270) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

CarGuo commented 5 years ago

看起来很诡异····

dujingxue1997 commented 5 years ago

看起来很诡异····

我试试你方式

dujingxue1997 commented 5 years ago

使用 implementation 'com.shuyu:GSYVideoPlayer:6.0.3' 出现这个问题

看起来很诡异····

CarGuo commented 5 years ago

6.0.0-beta 呢?

dujingxue1997 commented 5 years ago

6.0.0-beta 呢?

dujingxue1997 commented 5 years ago

6.0.0-beta 呢?

E:\wdq\app\src\main\java\cn\wdquan\activity_new\base\BaseActivity.java:49: 错误: 不兼容的类型: Class无法转换为IPlayerManager PlayerFactory.setPlayManager(Exo2PlayerManager.class); ^ E:\wdq\app\src\main\java\cn\wdquan\activity_new\base\VideoBaseActivity.java:47: 错误: 不兼容的类型: Class无法转换为IPlayerManager PlayerFactory.setPlayManager(Exo2PlayerManager.class);

dujingxue1997 commented 5 years ago

6.0.0-beta 呢? PlayerFactory.setPlayManager(Exo2PlayerManager.class);
这个方法可能在6.0.0-beta 没有吧

dujingxue1997 commented 5 years ago

6.0.0-beta 呢? 我把这个方法删了,然后重新编译 又回到了这个问题 还是报着个错 FAILURE: Build failed with an exception.

dujingxue1997 commented 5 years ago

我是不是要在我的lib里面 加上 exclude 'lib/armeabi-v7a/libijkplayer.so' exclude 'lib/arm64-v8a/libijkplayer.so' exclude 'lib/arm64-v8a/libijkffmpeg.so' exclude 'lib/armeabi-v7a/libijksdl.so' exclude 'lib/armeabi-v7a/libijkffmpeg.so' exclude 'lib/arm64-v8a/libijksdl.so'

这些东西

CarGuo commented 5 years ago

事实上我也没看懂你具体问题出现在哪里,你demo可以运行嘛

dujingxue1997 commented 5 years ago

事实上我也没看懂你具体问题出现在哪里,你demo可以运行嘛

Demo 可以运行,主要问题就是我导入GSY时候,报的这些错,运行不了。

CarGuo commented 5 years ago

这样只能说你自己看看了

dujingxue1997 commented 5 years ago

这样只能说你自己看看了 恩恩,行吧。麻烦你了,还帮我看。谢谢

vickyleu commented 5 months ago

事实上是 net.butterflytv.utils:rtmp-client:3.0.1 由 com.google.android.exoplayer:extension-rtmp:2.10.4 依赖了,然后io.antmedia:rtmp-client:3.2.0 由 androidx.media3:media3-datasource-rtmp:1.3.0 (最终来源com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.6.0-release-jitpack )依赖了,两个不同group的rtmp-client 存在同名so文件导致冲突的.

最后发现是com.github.Hitomis:transferee:1.6.1依赖了另一个版本的exo导致的,需要把冲突的依赖修改成media3 exo