72

Android で開発しているアプリで、Fatal Signal 11 エラーが発生し続けます。

メモリへのアクセス方法に関係していると思いますが、何が原因なのかわかりません。

どんな助けでも大歓迎です!

LogCat は次のとおりです。

05-02 23:47:17.618: D/dalvikvm(590): GC_FOR_ALLOC freed 68K, 4% free 6531K/6787K, paused 101ms
05-02 23:47:17.638: I/dalvikvm-heap(590): Grow heap (frag case) to 7.619MB for 1228816-byte allocation
05-02 23:47:17.738: D/dalvikvm(590): GC_CONCURRENT freed 1K, 4% free 7730K/8007K, paused 5ms+14ms
05-02 23:47:17.878: D/dalvikvm(590): GC_FOR_ALLOC freed <1K, 4% free 7730K/8007K, paused 37ms
05-02 23:47:17.888: I/dalvikvm-heap(590): Grow heap (frag case) to 8.790MB for 1228816-byte allocation
05-02 23:47:17.998: D/dalvikvm(590): GC_CONCURRENT freed <1K, 4% free 8930K/9223K, paused 4ms+4ms
05-02 23:47:17.998: A/libc(590): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
4

10 に答える 10

25

初期化されていないキャンバスを別のクラス内で呼び出そうとしていたため、その高さまたは幅を取得しようとするとクラッシュしました。

于 2012-05-03T18:02:13.437 に答える
13

android.media.MediaRecorder のインスタンスでも同じ問題が発生しました。

MediaRecorder インスタンスの#getMaxAmplitude()#reset()にアクセスされるコードが呼び出されました。#release()

于 2012-11-27T14:25:08.917 に答える
8

私は今朝同じ問題を抱えていましたが、誤って幅 800 ピクセルの画像を drawable-mdpi フォルダーに保存したことを突き止めることができました。何が起こったのかを理解したとき、私はそれを少しいじりました。ファイルサイズに関連しているかどうかを確認するために、一生懸命圧縮してみましたが、そうではありませんでした。次に、幅 650 ピクセルで再度保存してみましたが、そのフォルダーからはうまくいきました。したがって、私が推測するすべてのフォルダーのどこかに限界点があります。次に、800 p ワイドのイメージを目的の hdpi フォルダーに配置し、480 p ワイドのイメージを mdpi に配置して修正しました。

于 2013-03-01T17:02:56.797 に答える
5

私は同じ問題を抱えていて、ぐっすり眠り、朝にコーヒーを飲んだ後、初期化されていないビットマップでキャンバスをバックアップするのに十分愚かだったことに気付きました。キャンバスの描画コードのすべてがネイティブ コードではないにしても、多くの場合、初期化されていないオブジェクトの受け渡しはどこでも検出されないようです。

ヌル アドレス (0x00000000) を持つ SIGSEGV は、アプリケーションがヌル ポインターを逆参照したことを意味します。そのため、ヌル ポインター (つまり、最初にインスタンス化していないオブジェクト インスタンスへの空の参照) をサポートされているコードに渡す場所に注意してください。はネイティブ コードによって生成され、このエラーを適切にチェックしません。

于 2013-02-19T08:21:54.103 に答える
4

Canvas クラスを使用しているときに、同じ致命的なエラーが発生しました。
私のコードは次のようになります。次のコードは Arc を初期化し、キ​​ャンバスに描画します。

private RectF r1 = null;
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

public Arc(Context ctx) {
    super(ctx);
    mPaint.setColor(0xFFFF0000);
    r1 = new RectF(200, 200, 400, 400);
}

protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   canvas.drawArc(r1, 0, 90, true, mPaint);
}

この問題は、RectF のインスタンスが初期化されておらず、NullPointerException と致命的なエラーが発生したために発生しました。

于 2013-01-21T23:03:30.383 に答える
2

Androidでcocos2d-xアプリを作成しているときに、この問題が発生しました。問題は、私のレイヤーがCCLayerであったことです。

 CCLayer::init()

しかし、ヘッダーファイルには次のようなものがあります。

 class HelloWorld : public cocos2d::CCLayerColor

CCLayerColorをCCLayerに変更し、アプリが機能しました

于 2013-02-28T01:31:32.950 に答える
1

私も Android 用の Libgdx を使用しているときにこのエラーが発生しましたが、このエラーはネイティブ コードを使用する Box2d が原因であることがわかりました。

于 2015-03-20T06:36:21.973 に答える
0

私の場合、BluetoothSocketBluetooth接続を確立しようとしたときにnullでした

于 2013-09-16T11:53:45.117 に答える