首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换应用程序时的致命信号6 (SIGABRT)

切换应用程序时的致命信号6 (SIGABRT)
EN

Stack Overflow用户
提问于 2017-03-23 17:10:51
回答 1查看 739关注 0票数 3

上下文:

  • 我的应用程序使用一个webview来显示带有一些数据的报告。
  • 这个网页视图顶部有一个工具栏,上面有一个打印按钮。
  • 单击“打印”按钮后,打开一个菜单,让用户从可以打印报表的应用程序列表中进行选择。
  • 打印过程:获取报表的屏幕截图,压缩其大小,将png发送到打印机应用程序。

问题:

  • 当打印机应用程序打开打印图像时,我收到一个ANR,上面说我的后台应用程序停止工作了。
  • 如果我按下android上的back按钮,应用程序仍然处于活动状态,并且我可以在没有任何错误的情况下导航,这是很奇怪的,我刚刚收到一个警告,它已经停止工作。

一些启发代码:

获取屏幕截图并发送到打印机应用程序的代码

代码语言:javascript
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.print) {
        Bitmap bitmap = Util.screenShot(mWebView);
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
        File file = new File(Environment.getExternalStorageDirectory() + File.separator + "screenshot.png");
        try {
            file.createNewFile();
            FileOutputStream fo = new FileOutputStream(file);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        intent.setType("image/png");
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        startActivity(intent);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

日志:

代码语言:javascript
复制
03-23 14:32:54.726 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa E/IMGSRV: kickresource.c:1130: Debug assertion failed!
03-23 14:32:54.836 9039-9039/? A/google-breakpad: M B0DE6000 00018000 00015000 000000000000000000000000000000000 data@app@br.gov.go.agrodefesa.tabletagrodefesa-1@base.apk@classes.dex
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa W/google-breakpad: Chrome build fingerprint:
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa W/google-breakpad: 1.27
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa W/google-breakpad: 1
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
03-23 14:32:54.876 11347-11388/br.gov.go.agrodefesa.tabletagrodefesa A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 11388 (RenderThread)
03-23 14:32:54.976 9769-9769/? I/DEBUG: pid: 11347, tid: 11388, name: RenderThread  >>> br.gov.go.agrodefesa.tabletagrodefesa <<<
03-23 14:32:55.056 1710-1777/? D/UsageStatistics: Pkg: br.gov.go.agrodefesa.tabletagrodefesa    ForegroundTime: 2701177 FirstTime: 3-22-2017 21:00:00:000 LastTime: 3-23-2017 14:32:54:057 LastTimeUsed: 3-23-2017 14:32:54:057
03-23 14:32:55.466 524-1117/? I/WindowState: WIN DEATH: Window{2ba92055 u0 br.gov.go.agrodefesa.tabletagrodefesa/br.gov.go.agrodefesa.tabletagrodefesa.activities.TermoFiscalizacaoListActivity}
03-23 14:32:55.476 524-980/? I/WindowState: WIN DEATH: Window{1892d68d u0 br.gov.go.agrodefesa.tabletagrodefesa/br.gov.go.agrodefesa.tabletagrodefesa.activities.ImpressaoActivity}
03-23 14:32:55.496 524-654/? I/ActivityManager: Process br.gov.go.agrodefesa.tabletagrodefesa (pid 11347) has died
EN

回答 1

Stack Overflow用户

发布于 2017-03-23 17:46:44

哦我看到你的错误了。您使用的是:

bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);

,这是在CompressFormat中生成JPEG图像,并且您要发送PNG图像。

代码语言:javascript
复制
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/png");

这是错误的原因。为了解决这个问题,使用PNG代替JPEG。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42982664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档