Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.IllegalStateException #1505

Closed
JeremyHwc opened this issue Oct 9, 2018 · 14 comments
Closed

java.lang.IllegalStateException #1505

JeremyHwc opened this issue Oct 9, 2018 · 14 comments

Comments

@JeremyHwc
Copy link

下面是bugly收集上来崩溃信息,

1 android.media.MediaPlayer.getVideoHeight(Native Method)
2 tv.danmaku.ijk.media.player.AndroidMediaPlayer.getVideoHeight(Unknown Source:2)
3 com.shuyu.gsyvideoplayer.player.SystemPlayerManager.getVideoHeight(Unknown Source:6)
4 com.shuyu.gsyvideoplayer.GSYVideoBaseManager.getVideoHeight(Unknown Source:6)
5 com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getCurrentVideoHeight(Unknown Source:10)
6 com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalVideo(Unknown Source:3)
7 com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalFullByVideoSize(Unknown Source:0)
8 com.shuyu.gsyvideoplayer.utils.OrientationUtils$1.onOrientationChanged(Unknown Source:52)
9 android.view.OrientationEventListener$SensorEventListenerImpl.onSensorChanged(OrientationEventListener.java:157)
10 android.hardware.SystemSensorManager$SensorEventQueue.dispatchSensorEvent(SystemSensorManager.java:851)
11 android.os.MessageQueue.nativePollOnce(Native Method)
12 android.os.MessageQueue.next(MessageQueue.java:379)
13 android.os.Looper.loop(Looper.java:144)
14 android.app.ActivityThread.main(ActivityThread.java:7425)
15 java.lang.reflect.Method.invoke(Native Method)
16 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
17 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

机型集中在华为手机:
1539066898 1
1539066922 1
1539066932 1

@CarGuo
Copy link
Owner

CarGuo commented Oct 9, 2018

有办法复现吗??上述的log看不出代码位置是什么异常?

@JeremyHwc
Copy link
Author

没办法复现,是从bugly上收集到这10多个崩溃,这是我的初始化代码,看看能不能从这里看出问题:
private void initVideoPlayer() {
BarUtils.setStatusBarVisibility(PreviewVideoActivity.this, false);
BarUtils.setNavBarVisibility(this, false);

    mActivityPreviewVideo.setBackgroundColor(getResources().getColor(R.color.color_090909));
    mFakeStatusbarView.setVisibility(View.VISIBLE);
    mIvVideoClose.setVisibility(View.VISIBLE);
    mVideoPlayer.setVisibility(View.VISIBLE);

    //增加封面
    ImageView imageView = new ImageView(this);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setImageResource(R.drawable.video_thumb_image);
    //增加title
    mVideoPlayer.getTitleTextView().setVisibility(View.GONE);
    mVideoPlayer.getBackButton().setVisibility(View.GONE);
    //外部辅助的旋转,帮助全屏
    orientationUtils = new OrientationUtils(this, mVideoPlayer);
    //初始化不打开外部的旋转
    orientationUtils.setEnable(false);
    //检查视频地址是否为空
    if (TextUtils.isEmpty(mVideoUrl)) {
        ToastUtil.showLong(getString(R.string.video_url_empty_tip));
    }
    GSYVideoOptionBuilder gsyVideoOption = new GSYVideoOptionBuilder();
    gsyVideoOption
            .setThumbImageView(imageView)
            .setIsTouchWiget(true)

// .setRotateViewAuto(false)
// .setLockLand(false)
.setShowFullAnimation(false)
// .setNeedLockFull(false)
.setUrl(mVideoUrl)
.setCacheWithPlay(true)
.setVideoAllCallBack(new GSYSampleCallBack() {
@OverRide
public void onPrepared(String url, Object... objects) {
JLogUtil.showLogCompletion("onPrepared");
super.onPrepared(url, objects);
//开始播放了才能旋转和全屏
// orientationUtils.setEnable(true);
isPlay = true;
}

                @Override
                public void onQuitFullscreen(String url, Object... objects) {
                    super.onQuitFullscreen(url, objects);
                    if (orientationUtils != null) {
                        orientationUtils.backToProtVideo();
                    }
                    orientationUtils.setEnable(false);
                    BarUtils.setStatusBarVisibility(PreviewVideoActivity.this, false);
                    BarUtils.setNavBarVisibility(PreviewVideoActivity.this, false);
                }

                @Override
                public void onAutoComplete(String url, Object... objects) {
                    super.onAutoComplete(url, objects);
                    GSYVideoManager.instance().stop();//停止播放
                    mStudyTime += (System.currentTimeMillis() - mBeginTime);
                    onPlayCompleted();
                }

                @Override
                public void onPlayError(String url, Object... objects) {
                    if (mVideoPlayer != null) {
                        mVideoPlayer.setReplayText(getString(R.string.custom_video_player_click_to_restart));
                        mVideoPlayer.setTipText(getString(R.string.custom_video_player_video_loading_failed));
                    }
                    CustomVideoPlayer currentPlayer = (CustomVideoPlayer) mVideoPlayer.getCurrentPlayer();
                    if (currentPlayer != null && currentPlayer != mVideoPlayer) {
                        currentPlayer.setReplayText(getString(R.string.custom_video_player_click_to_restart));
                        currentPlayer.setTipText(getString(R.string.custom_video_player_video_loading_failed));
                    }
                }

                /**
                 * wifi开始按钮点击
                 */
                @Override
                public void onClickStartIcon(String url, Object... objects) {

// super.onClickStartIcon(url, objects);
mBeginTime = System.currentTimeMillis();
pauseMusic();
JLogUtil.showLogCompletion("onClickStartIcon:" + mBeginTime);
}

                /**
                 * 非wifi开始按钮点击
                 */
                @Override
                public void onClickStartThumb(String url, Object... objects) {
                    super.onClickStartThumb(url, objects);
                    mBeginTime = System.currentTimeMillis();
                    pauseMusic();
                }

                @Override
                public void onClickResume(String url, Object... objects) {
                    super.onClickResume(url, objects);
                    mBeginTime = System.currentTimeMillis();
                    JLogUtil.showLogCompletion("onClickResume:");
                }

                @Override
                public void onClickStop(String url, Object... objects) {
                    super.onClickStop(url, objects);
                    mStudyTime += (System.currentTimeMillis() - mBeginTime);
                    JLogUtil.showLogCompletion("onClickStop:" + mStudyTime);
                }

                @Override
                public void onClickStartError(String url, Object... objects) {
                    super.onClickStartError(url, objects);
                    mBeginTime = System.currentTimeMillis();
                }

            })
            .setLockClickListener(new LockClickListener() {
                @Override
                public void onClick(View view, boolean lock) {
                    if (orientationUtils != null) {
                        //配合下方的onConfigurationChanged
                        orientationUtils.setEnable(!lock);
                    }
                }
            })
            .build(mVideoPlayer);

    mVideoPlayer
            .getFullscreenButton()
            .setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //直接横屏
                    orientationUtils.resolveByClick();
                    //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
                    mVideoPlayer.startWindowFullscreen(PreviewVideoActivity.this, true, true);
                }
            });
}

//==================================================================
上述崩溃信息是在OrientationUtils初始化时产生的崩溃。

@CarGuo
Copy link
Owner

CarGuo commented Oct 10, 2018

有没可能是退到后台的时候,被系统回收导致的,或者后台播放时选择导致的。
我记得高版本api中,好像是android p之后,才会有后台不能访问传感器

@JeremyHwc
Copy link
Author

应该不是这个限制导致的问题,从崩溃信息来看,5.1的系统上也会存在这种问题

@CarGuo
Copy link
Owner

CarGuo commented Oct 14, 2018

目前看起来没看出问题,希望可以找到复现步骤

@karmalove
Copy link

我的也会出现这样的情况

@karmalove
Copy link

java.lang.IllegalStateException
at android.media.MediaPlayer.getVideoHeight(Native Method)
at tv.danmaku.ijk.media.player.AndroidMediaPlayer.getVideoHeight(Unknown Source)
at com.shuyu.gsyvideoplayer.e.d.getVideoHeight(Unknown Source)
at com.shuyu.gsyvideoplayer.b.getVideoHeight(Unknown Source)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getCurrentVideoHeight(Unknown Source)
at com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalVideo(Unknown Source)
at com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalFullByVideoSize(Unknown Source)
at com.shuyu.gsyvideoplayer.utils.OrientationUtils$1.onOrientationChanged(Unknown Source)
at android.view.OrientationEventListener$SensorEventListenerImpl.onSensorChanged(OrientationEventListener.java:143)
at android.hardware.SystemSensorManager$SensorEventQueue.dispatchSensorEvent(SystemSensorManager.java:409)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:143)
at android.os.Looper.loop(Looper.java:122)
at android.app.ActivityThread.main(ActivityThread.java:5276)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

@CarGuo
Copy link
Owner

CarGuo commented Oct 19, 2018

如何复现?哪个版本

@karmalove
Copy link

魅族m3note Android5.1 直接点击播放会出现这样的问题。

@JeremyHwc
Copy link
Author

大佬,这个问题有查一下吗,现在线上反馈出来的由此导致的崩溃越来越多了
w beczbx5 o k kf czqd

@Bard456
Copy link

Bard456 commented Nov 5, 2018

JNI DETECTED ERROR IN APPLICATION: JNI CallObjectMethod called with pending exception java.lang.IllegalStateException: 
  at int android.media.MediaPlayer.getVideoHeight() (MediaPlayer.java:-2)
  at int tv.danmaku.ijk.media.player.AndroidMediaPlayer.getVideoHeight() (AndroidMediaPlayer.java:201)
  at int com.shuyu.gsyvideoplayer.SystemPlayerManager.getVideoHeight() (SystemPlayerManager.java:160)
  at int com.shuyu.gsyvideoplayer.GSYVideoBaseManager.getVideoHeight() (GSYVideoBaseManager.java:479)
  at int com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getCurrentVideoHeight() (GSYVideoView.java:220)
  at boolean com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalVideo() (GSYBaseVideoPlayer.java:472)
  at boolean com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.isVerticalFullByVideoSize() (GSYBaseVideoPlayer.java:522)
  at void com.shuyu.gsyvideoplayer.utils.OrientationUtils$1.onOrientationChanged(int) (OrientationUtils.java:49)

@Equalzys
Copy link

华为荣耀V9 自动滚动播放列表,使用的系统播放器问题
java.lang.IllegalStateException
at android.media.MediaPlayer.getVideoWidth(Native Method)
at tv.danmaku.ijk.media.player.AndroidMediaPlayer.getVideoWidth(AndroidMediaPlayer.java:196)
at com.shuyu.gsyvideoplayer.player.SystemPlayerManager.getVideoWidth(SystemPlayerManager.java:152)
at com.shuyu.gsyvideoplayer.GSYVideoBaseManager.getVideoWidth(GSYVideoBaseManager.java:472)
at com.shuyu.gsyvideoplayer.video.base.GSYVideoView.getCurrentVideoWidth(GSYVideoView.java:218)
at com.shuyu.gsyvideoplayer.render.view.GSYSurfaceView.getCurrentVideoWidth(GSYSurfaceView.java:196)
at com.shuyu.gsyvideoplayer.utils.MeasureHelper.prepareMeasure(MeasureHelper.java:214)
at com.shuyu.gsyvideoplayer.render.view.GSYSurfaceView.onMeasure(GSYSurfaceView.java:54)
at android.view.View.measure(View.java:22216)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6671)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:22216)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:22216)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6671)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:22216)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6671)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:22216)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6671)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1539)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:823)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:702)
at android.view.View.measure(View.java:22216)
at android.support.v7.widget.RecyclerView$i.b(RecyclerView.java:9119)
at android.support.v7.widget.LinearLayoutManager.a(LinearLayoutManager.java:1583)
at android.support.v7.widget.LinearLayoutManager.a(LinearLayoutManager.java:1517)
at android.support.v7.widget.LinearLayoutManager.c(LinearLayoutManager.java:1331)
at android.support.v7.widget.LinearLayoutManager.b(LinearLayoutManager.java:1075)
at android.support.v7.widget.RecyclerView.a(RecyclerView.java:1832)
at android.support.v7.widget.RecyclerView$w.run(RecyclerView.java:5067)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:981)
at android.view.Choreographer.doCallbacks(Choreographer.java:790)
at android.view.Choreographer.doFrame(Choreographer.java:718)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:967)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

@Redoteam
Copy link

7431545095665_ pic

@CarGuo
Copy link
Owner

CarGuo commented Mar 29, 2019

#1869

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants