2015-06-21 56 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谷歌搜索變成了很多的可能性,包括: