【发布时间】:2015-06-22 02:20:32
【问题描述】:
在我的 Android 应用中,我通过 android.media.action.IMAGE_CAPTURE 意图使用相机。然后我使用 ExifInterface,因为我需要将照片的缩影发送到我的服务器:
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)
【问题讨论】:
-
崩溃的Logcat和崩溃前的缩略图数组大小是多少。
-
记住 getThumbnail 可以返回 null:developer.android.com/reference/android/media/…
-
我提供了 Logcat,但我不能给你缩略图的大小,因为我现在没有 Nexus 5,我得到它后会尽快编辑。跨度>
-
@MorrisonChang 我知道,但我不明白为什么它可能为空,因为它在其他手机上不为空,实际上我不希望它为空,因为我的应用程序没有它就无法运行.