Я написал приложение для камеры. Она имеет бесконечный цикл, созданный внутри «OnCreate», который делает снимок каждый второй:Сбой приложения для камеры Android при закрытии
Runnable mRunnable = new Runnable() {
@Override
public void run() {
camera.takePicture(null, null, mPicture);
mHandler.postDelayed(this, 1000);
}
};
mHandler.postDelayed(mRunnable,1000);
После этого он работает классификатор, основанный на CAFFE. Однако, когда я выйти из приложения в какой-то момент я всегда получаю ошибку говоря:
"App has been stopped"
В то же время я получаю следующее сообщение об ошибке в Android Monitor
:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myUsername.myAppName, PID: 25490
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.takePicture(android.hardware.Camera$ShutterCallback, android.hardware.Camera$PictureCallback, android.hardware.Camera$PictureCallback)' on a null object reference
at com.myUsername.myAppName.MainActivity$1.run(MainActivity.java:178)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
Кто-нибудь есть идея, как избежать этой ошибки? Нужно ли мне вызывать некоторые специальные функции при завершении приложения, которое заканчивает бесконечный цикл или явно закрывает камеру, которая работает в режиме предварительного просмотра?
вы используете пользовательские камеры? –
null указатель исключение средний вы не инициализированный объект камеры. Просьба проверить – Deepak
и приложение работает нормально. Поэтому я думаю, что это не проблема инициализации. Я не уверен в вопросе «пользовательской камеры». Я использую 'public static Camera Camera = null; camera.startPreview(); private Camera.PictureCallback mPicture = новая камера Camera.PictureCallback() ' – mcExchange