当为图片设置地理位置信息的时候总是出现空指针错误,有时候会出问题,有时候没有错
本来的源代码如下:
ExifInterface exif = null; ExifInterface exif2 = null; try { exif = new ExifInterface(srcPath); exif2 = new ExifInterface(desPath); // 获取信息 String time = exif.getAttribute(ExifInterface.TAG_DATETIME); String model = exif.getAttribute(ExifInterface.TAG_MODEL); String iso = exif.getAttribute(ExifInterface.TAG_ISO); exif2.setAttribute(ExifInterface.TAG_DATETIME, time); exif2.setAttribute(ExifInterface.TAG_MODEL, model); exif2.setAttribute(ExifInterface.TAG_ISO, iso); exif2.setAttribute(ExifInterface.TAG_GPS_LATITUDE, exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE)); exif2.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF)); exif2.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE)); exif2.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF)); if (exif2 != null) exif2.saveAttributes(); } catch (Exception e) { e.printStackTrace(); }
在设置一些属性的时候,源属性是null的,就会报空指针错误。把那些不需要的属性设置去掉就好了。
我去掉那些iso等信息就没有问题了。
ExifInterface exif = null; ExifInterface exif2 = null; try { exif = new ExifInterface(srcPath); exif2 = new ExifInterface(desPath); exif2.setAttribute(ExifInterface.TAG_GPS_LATITUDE, exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE)); exif2.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF)); exif2.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE)); exif2.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF)); if (exif2 != null) exif2.saveAttributes(); } catch (Exception e) { e.printStackTrace(); }