Android中各种Exception错误小结


Android中各种Exception错误小结

文章插图

通过Binding方式获取的PreviewView对象不存在 。我们布局中如果是存在该View , 但是仍然出现这个错误 。那么只有一种情况 。就是viewBinding还没有来得及初始化之前 , 就调用了viewBinding的方法去获取PreviewView对象了 。就会出现上面的问题了 。1. 介绍汇总了部分的崩溃异常日志内容 , 以及相关问题的解决方法 。希望给大家一点参考 。
问题都比较简单 。
2. Exception简单汇总一些常见的异常情况 , 以及相关的解决方法
2.1 IllegalArgumentException错误IllegalArgumentException:非法数据异常 。
问题1:
 JAVA.lang.IllegalArgumentException: The key must be an Application-specific resource id.The key must be an application-specific resource id:密钥必须是特定于应用程序的资源id 。
解释:
出现问题的原因在于我们给View添加Tag内容时 , 其中的Key的值并不能随便写个int值 , 如果随便写个int值就会出现上面的错误了 。
我们必须在xml文件中创建一个id值 , 然后再填写到key中 。
错误写法:
 binding.tvState.setTag(101, data);正确写法:
 <?xml version="1.0" encoding="utf-8"?><resources><item name="key_task" type="id" /></resources>binding.tvState.setTag(R.id.key_task, data);问题2:
 java.lang.IllegalArgumentException: Trying to create LifecycleCamera with destroyed lifecycle.试图创建生命周期被破坏的LifecycleCamera 。
解释:
也就说我们在调用cameraProvider.bindToLifecycle的时候 。中间步骤出现了崩溃或其他问题 。
造成lifecycle被销毁了 。然后出现的错误 。检测出现的代码 。
2.2 ExifInterface 异常在新项目中使用Glide库进行图片下载的时候 , 每加载一次图片都会出现下面的异常:
 W/ExifInterface: Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface.java.io.IOException: Invalid byte order: ffff8950at Android.media.ExifInterface.readByteOrder(ExifInterface.java:3128)at android.media.ExifInterface.isOrfFormat(ExifInterface.java:2443)at android.media.ExifInterface.getMimeType(ExifInterface.java:2321)at android.media.ExifInterface.loadAttributes(ExifInterface.java:1755)at android.media.ExifInterface.<init>(ExifInterface.java:1449)at com.bumptech.glide.load.resource.bitmap.ExifInterfaceImageHeaderParser.getOrientation(ExifInterfaceImageHeaderParser.java:40)at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientation(ImageHeaderParserUtils.java:92)at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:269)at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:224)at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:173)at com.bumptech.glide.load.resource.bitmap.ByteBufferBitmapDecoder.decode(ByteBufferBitmapDecoder.java:31)at com.bumptech.glide.load.resource.bitmap.ByteBufferBitmapDecoder.decode(ByteBufferBitmapDecoder.java:14)at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:524)at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:488)at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:474)at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:426)at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:390)at com.bumptech.glide.load.engine.DataCacheGenerator.onDataReady(DataCacheGenerator.java:94)at com.bumptech.glide.load.model.ByteBufferFileLoader$ByteBufferFetcher.loadData(ByteBufferFileLoader.java:70)at com.bumptech.glide.load.engine.DataCacheGenerator.startNext(DataCacheGenerator.java:74)at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:310)at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:276)at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:234)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)at java.lang.Thread.run(Thread.java:919)at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:431)


推荐阅读