2015-06-21 65 views
0

在我的Android应用程序中,我通过使用android.media.action.IMAGE_CAPTURE意图来使用相机。然后我用ExifInterface,因为我需要照片的微型发送到我的服务器:ExifInterface bug与Nexus 5

ExifInterface exif = new ExifInterface(GetinnersActivity.this.getExternalFilesDir(null).toString() + File.separator + fileName); 
           byte[] thumbnail = exif.getThumbnail(); 
           String miniature = Base64.encodeToString(thumbnail,Base64.DEFAULT); //This line crashes on Nexus 5 

我没有与他人手机的任何问题,但是试图执行的代码,我的最后一行时,Nexus 5的崩溃提供。 Nexus 5在Android 5.1.1上运行。在我的Android清单中,

<uses-sdk 
     android:minSdkVersion="17" 
     android:targetSdkVersion="19" /> 

我想知道这是否是由于某些已知的Nexus 5错误或者我做错了什么。

06-21 19:49:55.748: E/AndroidRuntime(29256): java.lang.NullPointerException: Attempt to get length of null array 
06-21 19:49:55.748: E/AndroidRuntime(29256): at android.util.Base64.encode(Base64.java:494) 
06-21 19:49:55.748: E/AndroidRuntime(29256): at android.util.Base64.encodeToString(Base64.java:456) 
+0

logcat的,什么是缩略图的大小阵列在崩溃之前。 –

+1

记得getThumbnail可以返回null:http://developer.android.com/reference/android/media/ExifInterface.html#getThumbnail() –

+0

我提供了Logcat,但我不能给你缩略图的大小,因为我不知道暂时没有Nexus 5,我会尽快进行编辑。 – Kritias

回答

0

我当然不会认为所有相机都会在EXIF标题中放一个缩略图。正如Morrison Chang在评论中指出的那样,getThumbnail() is allowed to return null。如果确实如此,则需要创建自己的缩略图。

我不明白为什么它可能是零,因为它不是空的其他手机

有成千上万的Android设备型号,还有数千摄像头应用程序。我怀疑你已经测试过了。

,因为我的应用程序不能运行,没有它

再次,创建自己的缩略图。在android create jpeg thumbnail谷歌搜索变成了很多的可能性,包括: