为什么会出现这个问题?
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); }
您看到的错误信息是由本地代码中取消引用空指针引起的。 从你所显示的内容来看,很难猜出可能的原因。
在你的地方,我会仔细检查,你没有传递一个空引用系统或库方法。
正如Nicola所提到的,这很可能是通过在本地代码中取消引用空指针而引起的。 我有一个类似的问题,并通过debugging堆栈跟踪解决它。
如果closures日志猫中的过滤function,将会看到整个堆栈跟踪。 这会给你提供发生崩溃的详细信息,我使用下面的python脚本来查找确切的原因; https://code.google.com/p/android-ndk-stacktrace-analyzer/wiki/Usage
在我的情况下,由于运行自定义的Android构build发生空指针。
祝你好运
最有可能的一个线程问题…我曾经跑过一个Fatal Signal 11
,当我正在做错误的线程上的东西…
可能是setVideoLayout() – 在你的onConfigurationChanged()
实现中调用。
将是有益的寿,如果你可以张贴更多的代码…
你可以从上次的Garbage Collection调用中看到垃圾收集器没有释放任何内存,并且你没有可用的内存。 你的缓冲区有多大? 他们需要多less额外的头部空间?
一种可能的解决scheme是通过设置android:largeHeap="true"
来调查使用较大的堆大小,以便在开发人员站点上logging应用程序清单中的android:largeHeap="true"
大小。 。
我有同样的问题,使用三星银河标签2加载任何WiX网站得到:
在0x00000000(代码= 1)的致命信号11(SIGSEGV)
并退出整个应用程序。
研究更多的是,我find了一篇关于ROM BUG的文章。 所以,我插上电话和F11(日食)编译相同的代码。 而且这是工作! 我仍然在我的平板电脑中出现错误。
平板电脑:三星Galaxy Tabg 2 GT-P5100 ANDROID 4.0.3内核3.0.8
电话:三星银河年轻DUOS(旧的,但固件更新)GT-S6102B ANDROID 4.4.2内核2.6.35.7
在我的手机上工作,但当我加载任何使用WiX工具制作的网站时,会在平板电脑上崩溃。
这里有很好的信息:google + link
当我用两个TextureViews完成我的活动(即按Home键)时,我有一个类似的问题:
Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa4680000 in tid 29013 (pool-4-thread-1)
logcat显示segv出现在drawXXX函数中。 所以我试图在表面被破坏的时候不画:
private synchronized void doDraw(Canvas canvas) { ... }
doDraw()被后台线程定期调用。 确切地说,使用ScheduledExecutorService。 这个东西在被销毁的监听器中停止,它也得到了synchronized关键字:
public synchronized boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) { executorService.shutdownNow(); return true; }
这保证了当前没有任何东西被绘制时,表面只能被破坏。
现在离开活动没有更多的崩溃!
在我看来,没有人使用TextureViews,但仍然SurfaceViews。 不幸的是,后者在某些设备上绘制半透明graphics时遇到了一些问题,这就是为什么我切换到TextureView。
希望这可以帮助。