安卓 - java.lang.NoSuchFieldError : android. graphics.Bitmap$CompressFormat.WEBP

标签 android performance encoding email-attachments webp

我正在尝试使用自 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 上

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

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

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

有什么帮助吗?

最佳答案

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

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

关于安卓 - java.lang.NoSuchFieldError : android. graphics.Bitmap$CompressFormat.WEBP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308831/

相关文章:

go - 无法将文本解码为结构

java - 设置/返回数组的首选方式

performance - 在索引处分解列表

perl - 使用 LWP::UserAgent 检索 ISO-8859-1 编码网站的正确方法?

android - 设置 Gradle 以将 ProGuard 映射文件发送到 Firebase 的困难

mysql - 提高 MySQL 选择查询的执行速度

java - java 和 c/objective 中的服务器/客户端 - 编码问题

android - Genymotion - 选择路径

android - 使用缓存提高带有图像的 Android ListView 中的滚动性能

android - Base64 与 7 位 GSM 编码不兼容?