Я использую этот урок / код для изучения функций камеры: урок по кулачкам.
Приложение вылетает после того, как камера намерена сделать снимок и вернуться к onActivityResult
.Но я проверяю, чтобы убедиться, что данные не равны нулю:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("***** inside onActivityResult");
if (requestCode == TAKE_PICTURE) {
if (data != null) {
System.out.println("***** inside data !=null if");
imageid = data.getData().getLastPathSegment(); //returns full pic id
System.out.println("***** imageid:" + imageid);
[...]
Я попадаю в оператор data != null
if, и он вылетает, когда я imageid = data.getData().getLastPathSegment();
.
Logcat:
01-20 12: 45: 02.678: ОШИБКА / AndroidRuntime (1626): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: главная 01-20 12: 45: 02.678: ОШИБКА / AndroidRuntime (1626): java.lang.RuntimeException: Ошибка доставкиresult ResultInfo {who = null, request = 1, result = -1, data = Intent {act = inline-data (with extras)}} в действие {org.kimile / org.kimile.Camera}: java.lang.NullPointerException01-20 12: 45: 02.678: ОШИБКА / AndroidRuntime (1626): на android.app.ActivityThread.deliverResults (ActivityThread.java:3515) 01-20 12: 45: 02.678: ОШИБКА / AndroidRuntime (1626): на Android.app.ActivityThread.handleSendResult (ActivityThread.java:3557) 01-20 12: 45: 02.678: ОШИБКА / AndroidRuntime (1626): в android.app.ActivityThread.access $ 2800 (ActivityThread.java:125) 01-20 12:45: 02.678: ОШИБКА / AndroidRuntime (1626): в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2063)
Я не могу понять, почему оно выдает исключение NULL, даже знаю, что я проверяю, чтобы убедиться, что оно не NULL.