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

Java 0x00000000处的致命信号11(Sigsegv)(代码=1)?,java,android,crash,signals,Java,Android,Crash,Signals,为什么会出现这个问题 public static String path; private VideoView mVideoView; mVideoView = (VideoView) findViewById(R.id.surface_view); mVideoView.setVideoPath(path); mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus(); //...

为什么会出现这个问题

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);
    }

很可能是线程问题。。。我曾经在一个
致命信号11
中运行过,当时我在错误的线程上做事情

可能是setVideoLayout()-调用您的
onConfigurationChanged()
实现


如果您可以发布更多的代码,这将非常有帮助。

您看到的错误消息是由于取消引用本机代码中的空指针而导致的。从你的表现很难猜出原因是什么


在您的位置上,我将仔细检查您是否未向系统或库方法传递空引用。

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

如果在日志cat中关闭过滤,您将看到整个堆栈跟踪。这将为您提供崩溃发生位置的详细信息,为了找到确切原因,我使用了以下python脚本

在我的例子中,由于运行自定义android构建,出现了一个空指针


祝您好运

您可以从上次垃圾回收调用中看到,垃圾回收器无法释放任何内存,并且您没有可用内存。你的缓冲区有多大?他们还需要多少额外的头部空间


一种可能的解决方案是,通过设置android:largeHeap=“true”允许在应用程序清单中使用较大的堆大小来研究使用较大的堆大小,记录在上。

我在使用samsung galaxy tab 2加载任何WiX网站时遇到了相同的问题:

0x00000000(代码=1)处的致命信号11(SIGSEGV)

退出整个应用程序

通过进一步研究,我发现了一篇关于ROM错误的帖子。因此,我插入了一个电话和F11(eclipse)来编译相同的代码。而且。。。它正在工作! 我的平板电脑仍然有错误

平板电脑: 三星Galaxy Tabg 2 GT-P5100 安卓4.0.3 内核3.0.8

电话: 三星Galaxy Young DUOS(旧但固件更新) GT-S6102B 安卓4.4.2 内核2.6.35.7

在我的手机上工作,但当我加载任何使用WiX工具创建的网站时,平板电脑会崩溃


好信息

我在使用两个TextureView(即按下主页按钮)完成活动时遇到类似问题:

logcat显示segv出现在drawXXX函数中。 所以当表面被破坏时,我尽量不画画:

private synchronized void doDraw(Canvas canvas) {
...
}
后台线程定期调用doDraw()。确切地说,使用ScheduledExecutorService。此内容在已销毁的侦听器中停止,该侦听器还获得synchronized关键字:

public synchronized boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
    executorService.shutdownNow();
    return true;
}
这保证了只有在当前未绘制任何图形时才能销毁曲面

现在退出活动时不再发生崩溃

在我看来,没有人使用TextureView,但仍然使用SurfaceView。不幸的是,后者在某些设备上绘制半透明图形时存在一些问题,这就是我切换到TextureView的原因


希望这有帮助。

哪一行导致错误?用调试器一步一步地检查它,并隔离出有问题的行。我不知道这不是我代码中的错误。当我打开我的应用程序时,首先是视频打开,然后是1秒,它正在关闭并显示该错误。但是我的应用程序不强制关闭只有视频关闭在这种情况下,问题必须与视频。如果视频格式不正确,可能会导致系统视频解码器出现此错误。有没有可能你可以分享视频或你加载它的URL?我使用vitamio编解码器。误差是我的尺寸造成的?高度还是宽度?网址是:mms://50.7.241.234/kelkitDid 你找到解决办法了吗?我对这项事业特别感兴趣……你能详细介绍一下吗?我正试图在别人的代码上调试这个SIGSEGV。不知道代码的哪一部分出错了。我不知道这不是我代码上的错误。当我打开我的应用程序时,首先是视频打开,然后是1秒,它正在关闭并显示该错误。但是我的应用程序不会强制关闭仅视频关闭它很可能是您的VideoView代码导致并在本机代码中出现问题。你真的需要完整的本机堆栈跟踪来理解为什么会发生这种情况。对不起,我不能理解,我的代码导致了什么?因为我只是设定了道路。当我在pc上的webbrowser上查看它时,路径正在运行,但当我想在我的应用程序上查看它时,出现了一个问题“很可能是您的VideoView代码导致本机代码出现问题”输入错误:/,您尝试使用的路径是什么?此建议“如果您关闭日志猫中的过滤,您将看到整个堆栈跟踪。”救了我。是的,我也是这样猜的。这可能是因为堆中内存不足。我之前遇到了一个问题,并通过在清单中使用android:largeHeap=“true”解决了这个问题。试试看,让我们知道。
public synchronized boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
    executorService.shutdownNow();
    return true;
}