Сбой программы, когда пользователь нажимает кнопку «Назад» во время съемки - PullRequest
1 голос
/ 29 июня 2011

Я использую намерения, и мне интересно, почему мое приложение продолжает падать, когда они нажимают кнопку возврата.Я попытался:

if(data.getExtras() != null)

, но это все еще не работает.Есть ли более правильный способ сделать это?

Упс, извините, что не уточнил.D:

Stacktrace:

E/AndroidRuntime(19352): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1337, result=0, data=null} to activity {com.smilingdevil.Day5/com.smilingdevil.Day5.BopActivity}: java.lang.NullPointerException
E/AndroidRuntime(19352):        at android.app.ActivityThread.deliverResults(ActivityThread.java:2883)
E/AndroidRuntime(19352):        at android.app.ActivityThread.handleSendResult(ActivityThread.java:2925)
E/AndroidRuntime(19352):        at android.app.ActivityThread.access$2000(ActivityThread.java:132)
E/AndroidRuntime(19352):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1063)
E/AndroidRuntime(19352):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19352):        at android.os.Looper.loop(Looper.java:143)
E/AndroidRuntime(19352):        at android.app.ActivityThread.main(ActivityThread.java:4196)
E/AndroidRuntime(19352):        at java.lang.reflect.Method.invokeNative(NativeMethod)
E/AndroidRuntime(19352):        at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(19352):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(19352):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(19352):        at dalvik.system.NativeStart.main(Native Method)

E/AndroidRuntime(19352): Caused by: java.lang.NullPointerException
E/AndroidRuntime(19352):        at com.smilingdevil.Day5.BopActivity.onActivityResult(BopActivity.java:167)
E/AndroidRuntime(19352):        at android.app.Activity.dispatchActivityResult(Activity.java:4010)
E/AndroidRuntime(19352):        at android.app.ActivityThread.deliverResults(ActivityThread.java:2879)
E/AndroidRuntime(19352):        ... 11 more
W/ActivityManager( 1337):   Force finishing activity com.smilingdevil.Day5/.BopActivity

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Вы зависаете, потому что данные нулевые.Необходимо выполнить проверку if (data! = Null && data.getExtras ()! = Null).Нет никаких гарантий, что в завершившейся операции были включены какие-либо данные в качестве части установки ее результата.

1 голос
/ 29 июня 2011

Обрабатываете ли вы результат вызова намерения камеры с помощью метода onactivityResult(int requestCode, int resultCode, Intent data)?

Если это так, убедитесь, что вы проверяете resultCode -

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // first, check that your requestCode matches the requestCode you sent to the
    // camera intent - this should really only matter if you're making multiple 
    // requests to an intent and expecting to do different things with the returns,
    // but you should check anyway.
    if (requestCode == whateverCodeYouUsedInRequest) {
        if (resultCode == RESULT_OK) {
            // everything should be OK and you can process the expected result

        } else if (resultCode == RESULT_CANCELED) {
            // user explicitly canceled the called activity - you shouldn't 
            // expect to process the expected result.
        } else {
            // not sure what happened here - but result isn't 'RESULT_OK' so 
            // you shouldn't expect to process the expected result.
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...