【问题标题】:Android - java.lang.NoSuchFieldError: android.graphics.Bitmap$CompressFormat.WEBPAndroid - java.lang.NoSuchFieldError: android.graphics.Bitmap$CompressFormat.WEBP
【发布时间】:2013-10-18 23:37:26
【问题描述】:

我正在尝试使用自 API 1 以来一直支持的非常简单的代码。

if (bitmap != null) {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.WEBP, IMAGE_QUALITY, byteArrayOutputStream);
    byte[] bytes = byteArrayOutputStream.toByteArray();
    result = Base64.encodeToString(bytes, Base64.DEFAULT);
}

不知何故,

bitmap.compress(Bitmap.CompressFormat.WEBP, IMAGE_QUALITY, byteArrayOutputStream);

给了我一个奇怪的错误:java.lang.NoSuchFieldError: android.graphics.Bitmap$CompressFormat.WEBP,而这只发生在我的 moto razr 2.3 上

我在互联网上找不到任何关于此的内容。这是怎么回事? (我明白了,显然,摩托罗拉的股票 android 并没有考虑包含它,但我将如何解决这个问题?)任何提示?

我要做的就是压缩屏幕(或视图)的快照,并以String 形式以用户友好的方式附加它(同一设备也不能正确执行文件附件)到电子邮件意图的正文,并将其传递给可以发送电子邮件的人。

尝试压缩为 .jpeg,然后将其转换为 base64 编码字符串,然后附加到正文中的电子邮件需要很长时间,而且用户响应性不是很好。这不可能发生。

有什么帮助吗?

【问题讨论】:

    标签: android performance encoding email-attachments webp


    【解决方案1】:

    android.graphics.Bitmap$CompressFormat.WEBP 仅适用于 api 级别 14 或以上。

    尝试一些 WebP 库。
    WebP library for java?

    【讨论】:

    • 哦。我现在看到了。对不起,我误读了文档。 Bitmap.CompressionFormat 自 api 级别 1 以来一直存在。我不小心将其读作 WEBP 的 api 级别。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2013-06-05
    • 2013-01-04
    相关资源
    最近更新 更多