Я получаю много сообщений о сбоях в crashlytics, где объект Camera имеет значение null. Это не происходит со мной во время тестирования и использования приложения.Camera.open возвращает null иногда
Fatal Exception: java.lang.RuntimeException: Unable to resume activity {packageName/activityName}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3026)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3057)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5349)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at activityName.o(SourceFile:612)
at activityName.u(SourceFile:772)
at activityName.onResume(SourceFile:539)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1241)
at android.app.Activity.performResume(Activity.java:6106)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3015)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3057)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5349)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
Аварийное происшествие происходит в camera.getParameters()
.
Так это в основном потому, что камера по какой-то причине не может подключиться в данный момент?
Это похоже на ошибку "Can't connect to camera.", вы попадаете в приложение камеры по телефону?
Надеюсь, что кто-то может пролить свет на это и поделиться некоторыми способами справиться с этим.
Из вашего журнала это выглядит так, что объект Camera является нулевым, потому что действие (из которого объект камеры было полем) было уничтожено и воссоздано. Это может произойти, если конфигурация активности изменена (как правило, портретная в альбомную). –
@AlexCohn Эта активность не разрушается при изменении ориентации, потому что я добавил атрибут configChange в манифест, чтобы это не могло быть причиной. –
Ваша активность падает в onResume(), на линии 539. Это происходит потому, что объект камеры в этот момент равен нулю. Хотя вы считаете, что позаботились обо всех возможных сбоях, некоторые особенности ОС Android нашли некоторые невозможные. Невозможно предложить исправление без исходного кода. –