0x00000000的致命信号11(Sigsegv)(代码=1)?

2022-09-03 14:18:34

为什么会出现此问题?

public static String path;
private VideoView mVideoView;


mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();

//...

    private int mLayout = VideoView.VIDEO_LAYOUT_ZOOM;

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (mVideoView != null)
            mVideoView.setVideoLayout(mLayout, 0);
        super.onConfigurationChanged(newConfig);
    }

this is error


答案 1

您看到的错误消息是由取消引用本机代码中的空指针引起的。从你展示的内容来看,很难猜测可能是什么原因。

在你的位置上,我会仔细检查你没有将空引用传递给系统或库方法。


答案 2

正如 Nicola 所提到的,这很可能是由在本机代码中取消引用空指针引起的。我遇到了类似的问题,并通过调试堆栈跟踪解决了它。

如果在日志 cat 中关闭筛选,您将看到整个堆栈跟踪。这将为您提供崩溃发生位置的详细信息,我使用以下python脚本来查找确切的原因;https://code.google.com/p/android-ndk-stacktrace-analyzer/wiki/Usage

在我的情况下,由于运行自定义Android构建而发生了空指针。

祝你好运


推荐