15

なぜこの問題が発生するのですか?

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

これはエラーです

4

6 に答える 6

7

表示されているエラーメッセージは、ネイティブコードでnullポインタを逆参照していることが原因です。あなたが示したものから、何が原因であるかを推測するのは難しいです。

あなたの代わりに、システムまたはライブラリメソッドへのnull参照を渡していないことを再確認します。

于 2012-10-18T11:24:08.420 に答える
4

Fatal Signal 11ほとんどの場合、スレッドの問題です...間違ったスレッドで何かをしていたときに、私も同じように走ったことがあります...

おそらく実装の setVideoLayout() 呼び出しですonConfigurationChanged()

もう少しコードを投稿できれば助かります...

于 2012-10-18T11:13:54.977 に答える
2

前回のガベージ コレクション呼び出しから、ガベージ コレクタがメモリを解放できず、使用可能なメモリがないことがわかります。バッファの大きさは?追加のヘッドルームはどれくらい必要ですか?

考えられる解決策の 1 つは、開発者サイトandroid:largeHeap="true"に記載されているアプリケーション マニフェストで大きなヒープ サイズを許可するように設定して、より大きなヒープ サイズの使用を調査することです。.

于 2014-04-04T06:43:59.167 に答える
0

2 つの TextureViews を使用してアクティビティを終了するとき (つまり、ホーム ボタンを押すとき) に、同様の問題が発生しました。

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 を使用します。このことは、同期されたキーワードも取得した、破棄されたリスナーで停止されます。

public synchronized boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
    executorService.shutdownNow();
    return true;
}

これにより、現在何も描画されていない場合にのみサーフェスを破棄できることが保証されます。

アクティビティを終了してもクラッシュすることはもうありません!

誰もTextureViewsを使用していないようですが、まだSurfaceViewsを使用しているようです。残念ながら、後者は一部のデバイスで半透明のグラフィックを描画するときに問題が発生するため、TextureView に切り替えました。

お役に立てれば。

于 2016-03-03T21:37:12.103 に答える
0

samsung galaxy tab 2を使用してWiX Webサイトをロードすると同じ問題が発生しました:

0x00000000 (code=1) の致命的なシグナル 11 (SIGSEGV)

アプリケーション全体を終了します。

さらに調べてみると、ROM BUG について話している投稿を見つけました。そこで、電話と F11 (Eclipse) を接続して、同じコードをコンパイルします。そして...それは働いています!タブレットでまだエラーが発生します。

タブレット: Samsung Galaxy Tabg 2 GT-P5100 ANDROID 4.0.3 カーネル 3.0.8

電話: Samsung Galaxy Young DUOS (古いがファームウェアは更新済み) GT-S6102B ANDROID 4.4.2 KERNEL 2.6.35.7

スマートフォンでは動作しますが、WiX ツールで作成した Web サイトをロードするとタブレットでクラッシュします。

ここで良い情報: google+ リンク

于 2014-12-08T14:22:57.180 に答える