JiaoZiVideoPlayer icon indicating copy to clipboard operation
JiaoZiVideoPlayer copied to clipboard

开启混淆后release打包,使用exo播放,会报 java.lang.NoSuchMethodException: <init> [class cn.jzvd.Jzvd]

Open BK2011111 opened this issue 5 years ago • 1 comments

**什么jzvd版本 7.0.5 **是否和安卓版本有关系,什么版本 否 **是否和特定品牌的手机机型有关系,什么机型 否 **相关log是什么 2019-12-02 14:30:53.783 9342-9342/? W/System.err: java.lang.NoSuchMethodException: [class cn.jzvd.Jzvd] 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at java.lang.Class.getConstructor0(Class.java:2332) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at java.lang.Class.getConstructor(Class.java:1728) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at cn.jzvd.Jzvd.j(SourceFile:515) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at cn.jzvd.Jzvd.onClick(SourceFile:190) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at cn.jzvd.JzvdStd.onClick(SourceFile:214) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at android.view.View.performClick(View.java:7161) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at android.view.View.performClickInternal(View.java:7138) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at android.view.View.access$3500(View.java:811) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at android.view.View$PerformClick.run(View.java:27419) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at android.os.Handler.handleCallback(Handler.java:883) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:100) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at android.os.Looper.loop(Looper.java:227) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7523) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at java.lang.reflect.Method.invoke(Native Method) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953) **复现流程 使用exo内核播放,项目开启混淆打包,安装后播放任意视频,播放器会一直加载,日志会报异常: java.lang.NoSuchMethodException: [class cn.jzvd.Jzvd] **最好有截图或者视频说明情况 经过排查发现,mediaInterface 是通过反射获取构造函数的,所以应防止自己所用的JZMediaInterface的类的构造函数被混淆。 解决:在proguard-rules.pro中加上-keep public class xxx(你自己的包名路径).JZMediaExo {*;} 微信图片_20191202163609

BK2011111 avatar Dec 02 '19 08:12 BK2011111

**什么jzvd版本 7.0.5 **是否和安卓版本有关系,什么版本 否 **是否和特定品牌的手机型号有关系,什么型号 否 **相关日志是什么 2019-12-02 14: 30:53.783 9342-9342/? W/System.err: java.lang.NoSuchMethodException: [class cn.jzvd.Jzvd] 2019-12-02 14:30:53.783 9342-9342/? W/System.err: 在 java.lang.Class.getConstructor0(Class.java:2332) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: 在 java.lang.Class.getConstructor(Class.java:1728) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at cn.jzvd.Jzvd.j(SourceFile:515) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at cn.jzvd.Jzvd.onClick(SourceFile:190) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: 在 cn.jzvd.JzvdStd.onClick(SourceFile:214) 2019-12-02 14:30:53.783 9342-9342/? W/System.err:在 android.view.View.performClick(View.java:7161) 2019-12-02 14:30:53.783 9342-9342/? W/System.err:在 android.view.View.performClickInternal(View.java:7138) 2019-12-02 14:30:53.783 9342-9342/? W/System.err: at android.view.View.access$3500(View.java:811) 2019-12-02 14:30:53.784 9342-9342/? W/System.err:在 android.view.View$PerformClick.run(View.java:27419) 2019-12-02 14:30:53.784 9342-9342/? W/System.err:在 android.os.Handler.handleCallback(Handler.java:883) 2019-12-02 14:30:53.784 9342-9342/? W/System.err:在 android.os.Handler.dispatchMessage(Handler.java:100) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: 在 android.os.Looper.loop(Looper.java:227) 2019-12-02 14:30:53.784 9342-9342/? W/System.err:在 android.app.ActivityThread.main(ActivityThread.java:7523) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: 在 java.lang.reflect.Method.invoke(Native Method) 2019-12-02 14:30:53.784 9342-9342/? W/System.err:在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 2019-12-02 14:30:53.784 9342-9342/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953) **复现流程 使用exo核心播放,项目开启重新绑定,安装后播放任意视频,播放器会一直存在加载,日志会报告异常: java.lang.NoSuchMethodException: [class cn.jzvd.Jzvd] **最好有截图或者视频说明情况 经过排查发现,mediaInterface 是通过反射获取构造函数的所以,应防止自己所用的JZMediaInterface 的类的构造函数被重新构造。 解决:在proguard-rules.pro中加上-keep public class xxx(你自己的包名路径).JZMediaExo {*;} 微信图片_20191202163609

万分感谢,解决了我的问题,我也是使用exo后,开启混淆,无法播放

xiaolunan avatar Jul 07 '21 08:07 xiaolunan