3

PDFDocumentを使用して、Android で複数ページの PDF ファイルを作成しようとしています。たとえば、新しいページ (メソッド newPDFPage()) を作成した後、次の次の行canvas.drawLine(start, position, finish, position, paint);により、コード内の行を参照せずにアプリがクラッシュします。

エラー: 致命的なシグナル 11 (SIGSEGV)、コード 1 (SEGV_MAPERR)、障害アドレス 0x12

@TargetApi(Build.VERSION_CODES.KITKAT)
public void newPDFPage() {

    document.finishPage(page);
    pageInfo = new PdfDocument.PageInfo.Builder(595, 842, 1).create();
    page = document.startPage(pageInfo);
    position = titleBaseLine;

}

毎回クラッシュするわけではなく、ランダムに発生します (2/10 で動作)。

完全なスタック トレース

Fatal signal 11 (SIGSEGV), code 1, fault addr 0x12 in tid 20916 (com.example.app)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'htc/htc_europe/htc_m8:6.0/MRA58K/662736.4:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 20916, tid: 20916, name: com.example.app  >>> com.example.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x12
r0 b8bc42e8  r1 42340000  r2 43480000  r3 44098000
r4 00000000  r5 b8bc42e8  r6 ffffffff  r7 b8aa20d0
r8 ffffffff  r9 b70269a0  sl 133b4b50  fp 12e6de80
ip 00000013  sp beef6d70  lr 7313d985  pc 00000012  cpsr 600e0030
#00 pc 00000012  <unknown>
#01 pc 02cb8983  /system/framework/arm/boot.oat (offset 0x2256000)    

不足しているものがあればお知らせください。質問を編集します。

4

1 に答える 1

3

問題はおそらく、新しいページを作成するときに、キャンバスを再初期化/取得する必要があることです。

Canvas canvas = page.getCanvas();
于 2016-03-10T13:45:46.293 に答える