mainLog
Line 58569: 12-08 17:58:48.036 2841 3383 I ActivityTaskManager: START u0 {act=android.intent.action.EDIT dat=content://com.esuper.file.explorer.files/... typ=image\/* cmp=com.coloros.gallery3d/com.oplus.gallery.pictureeditorpage.PhotoEditorActivity (has extras)} with LAUNCH_MULTIPLE from uid 10247 (BAL_ALLOW_VISIBLE_WINDOW) result code=0
Line 59202: 12-08 17:58:48.602 15496 6221 I PhotoLoadTask: [loadPhoto] photo = /storage/emulated/0/DCIM/dlwzxx/mg/澳门地址.jpg, mJpegType = 0, start
Line 59484: 12-08 17:58:49.087 15496 6221 I PhotoLoadTask: [loadPhoto.getUserPhoto] duration = 331ms
Line 59485: 12-08 17:58:49.087 15496 6221 I PhotoLoadTask: , advisedSampleSize = 1 Line 59486: 12-08 17:58:49.087 15496 6221 I PhotoLoadTask: , opts = (3120, 4160)
Line 59487: 12-08 17:58:49.087 15496 6221 I PhotoLoadTask: , imageSize = (3072, 4096)
Line 59530: 12-08 17:58:49.151 15496 6221 I PhotoLoadTask: [loadPhoto] photo = /storage/emulated/0/DCIM/dlwzxx/mg/澳门地址.jpg
Line 59531: 12-08 17:58:49.151 15496 6221 I PhotoLoadTask: duration = 363ms
Line 59532: 12-08 17:58:49.151 15496 6221 I PhotoLoadTask: imageSize = (3072, 4096)
Line 59533: 12-08 17:58:49.151 15496 6221 I PhotoLoadTask: orientation = 0°
Line 75957: 12-08 18:00:09.543 15496 6423 E SaveFileTask: querySource error:java.lang.NumberFormatException: For input string: "澳门地址.jpg"
Line 75967: 12-08 18:00:09.635 15496 6423 E SaveFileTask: querySource error:java.lang.NumberFormatException: For input string: "澳门地址.jpg"
Line 76074: 12-08 18:00:10.482 15496 6423 D SaveFileTask: insertLocalMedia: result uri = content://com.oplus.gallery.database.provider.gallery/local_media_internal/122
Line 76085: 12-08 18:00:10.487 15496 6423 D SaveFileTask: preloadMediaItem, mItemPath = /local/item/image/122, mAlbumPath = /local/album/any/all/-1739773001
Line 76101: 12-08 18:00:10.497 15496 6423 D SaveFileTask: onRun, Insert: content://media/external_primary/images/media/1000000417(file:/storage/emulated/0/DCIM/Camera/IMG_20231208_180009.jpg) to Media Database
Line 76102: 12-08 18:00:10.510 15496 6423 W Task : Exception in running a jobFor input string: "澳门地址.jpg" java.lang.Long.parseLong(Long.java:751)
activity信息
Intent { act=android.intent.action.EDIT dat=content://com.esuper.file.explorer.files/storage/emulated/0/DCIM/dlwzxx/mg/%E6%BE%B3%E9%97%A8%E5%9C%B0%E5%9D%80.jpg typ=image\/* cmp=com.coloros.gallery3d/com.oplus.gallery.pictureeditorpage.PhotoEditorActivity (has extras) }
从上述log信息中,可以发现报了一个 numberFormat异常,后来此异常又被捕获,但是没有进行相关处理,造成无法退出编辑界面,那么异常的时候发生了什么ne?
通过查阅代码可知,在发生异常之前,由于之前的业务需求,加上了 localHDR 编辑的需求,而这里在保存之后,需要获取原图片的信息,然后将其copy到新图中,这里需求新加的代码逻辑里直接拿的是传入的uri,而传入的uri 在此三方应用中是不规范的,所以造成无法将后面的segment 进行类型转换。
这里也有几种方法,一是在抛异常的时候恢复page流程,二是监测传入的uri是否合规,三是此段逻辑属于localhdr新增需求是为了编辑RAW图特地加的可以考虑是否项目必须等,遵循最小修改原则即可。