android - 如何以编程方式检查图像(PNG、JPEG)在 Android 中是否已损坏或不受支持?

标签 android bitmap

我正在尝试在 imageview 中加载图像,但是对于某些图像,当我尝试从图像路径获取位图时,我的应用程序崩溃了。

这是我的代码:

public Bitmap getBitmap(String imagePath){
    Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
    return bitmap;
}

日志:

   Process: kgs.com.librarytest2, PID: 17587
   java.lang.NoClassDefFoundError: Failed resolution of: 
   Ljavax/imageio/ImageIO;
   at it.lamba.utils.KImageCheck.analyzeImage(KImageCheck.kt:26)
   at it.lamba.utils.KImageCheck.getImageData(KImageCheck.kt:53)
   at com.kitegamesstudio.kgspicker.ui.PickerFragment.handleSelection(PickerFragment.kt:524)at com.kitegamesstudio.kgspicker.ui.PickerFragment$getPagerAdapter$selectionDe legate$1.onItemSelected(PickerFragment.kt:494) at com.kitegamesstudio.kgspicker.ui.PagerFragment$selectionDelegate$1.onItemS lected(PagerFragment.kt:35) at com.kitegamesstudio.kgspicker.ui.RecyclerViewAdapter$ImageItemVieHolder$bi d$$inlined$with$lambda$1.onClick(RecyclerViewAdapter.kt:125) at android.view.View.performClick(View.java:6392)

最佳答案

请注意,您的代码(getBitmap() 方法)与您的堆栈跟踪无关,堆栈跟踪不涉及此方法。

您似乎在使用 this library .它专为在桌面或服务器上与 Java SE 一起使用而设计。它使用 javax.imageio.ImageIO,它不是 Android SDK 的一部分。您需要从您的项目中删除该库。

关于android - 如何以编程方式检查图像(PNG、JPEG)在 Android 中是否已损坏或不受支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990118/

相关文章:

android - Metal 和所有其他 c++ 平台共有哪些 c++ 数据类型

Android Renderscript,从位图中删除白色/白色背景

c++ - 使用用户分配的内存绘制到 HDC

android - 带有 WebService 图像的 DecodeByteArray 始终为 null

java - 删除 XML 组件而不是隐藏?

android - 使用 Google Cardboard 改进 Android 上的头部追踪

android - 卸载应用程序时如何以编程方式清理缓存?

java - 调色板颜色缓存的单例实例

bitmap - 将 TrueType 字体 (TTF) 中的字符(字形)转储到位图中

android - 在 Android 按钮中获取调整大小的图像