首页 > 解决方案 > 如何以编程方式检查图像(PNG、JPEG)在 android 中是否损坏或不受支持?

问题描述

我正在尝试在 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)

标签: androidbitmap

解决方案


请注意,您的代码(一种getBitmap()方法)与您的堆栈跟踪无关,它不引用此方法。

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


推荐阅读