2016-02-29 7 views
1

Я авария на моем Nexus 5 Android 6 (забивается/забивается) с использованием библиотеки CommonsWare cwac:cam2аварии на изменении ориентации во время съемок с библиотекой CWAC CAM2

при изменении ориентации на записи/фото захватывая деятельности. Ошибка на моем устройстве систематична.

StackTrace:

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.m360learning.android, PID: 9637 
java.lang.RuntimeException: Unable to start activity ComponentInfo { 
com.m360learning.android/com.commonsware.cwac.cam2.VideoRecorderActivity 
}: de.greenrobot.event.EventBusException: Subscriber class com.commonsware.cwac.cam2.CameraFragment already registered to event class com.commonsware.cwac.cam2.CameraController$ControllerReadyEvent 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2416) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2476) 
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java: 4077) 
at android.app.ActivityThread. - wrap15(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1350) 
at android.os.Handler.dispatchMessage(Handler.java: 102) 
at android.os.Looper.loop(Looper.java: 148) 
at android.app.ActivityThread.main(ActivityThread.java: 5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 616) 
Caused by: de.greenrobot.event.EventBusException: Subscriber class com.commonsware.cwac.cam2.CameraFragment already registered to event class com.commonsware.cwac.cam2.CameraController$ControllerReadyEvent 
at de.greenrobot.event.EventBus.subscribe(EventBus.java: 179) 
at de.greenrobot.event.EventBus.register(EventBus.java: 165) 
at de.greenrobot.event.EventBus.register(EventBus.java: 133) 
at com.commonsware.cwac.cam2.CameraFragment.onStart(CameraFragment.java: 123) 
at android.app.Fragment.performStart(Fragment.java: 2244) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java: 1002) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java: 1148) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java: 1130) 
at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java: 1958) 
at android.app.FragmentController.dispatchStart(FragmentController.java: 163) 
at android.app.Activity.performStart(Activity.java: 6274) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2379) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2476) 
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java: 4077) 
at android.app.ActivityThread. - wrap15(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1350) 
at android.os.Handler.dispatchMessage(Handler.java: 102) 
at android.os.Looper.loop(Looper.java: 148) 
at android.app.ActivityThread.main(ActivityThread.java: 5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 616) 

Большое спасибо за поддержку, исправления очень системщик реализованы.

+0

Поделитесь некоторым кодом, пожалуйста? В частности, реализация класса 'CameraFragment' –

+0

@GeorgeD: Это происходит из библиотеки, которую OP явно не объяснил. – CommonsWare

+0

@Renaud: вам нужно сделать ваши вопросы более подходящими для переполнения стека. * Я понимаю, что вы имеете в виду здесь, потому что я работал с другими вашими вопросами в этой области в прошлом. Однако Stack Overflow - это сайт для ** всех **, а не только для вас. Каждый из ваших вопросов должен объяснить кому-то, кто понятия не имеет, кто вы или я, какова ваша проблема. Просто отправить трассировку стека и ограниченное объяснение того, как вы ее получили, недостаточно. – CommonsWare

ответ

2

Проблема в том, что вы пытаетесь зарегистрировать службу, дважды введите код здесь, как вы можете видеть в трассировке. Служба не является незарегистрированной, поэтому самый простой вариант для вас - проверить, зарегистрирована ли служба, прежде чем регистрировать ее. EventBus.getDefault() .Registered (...) или check on onStart - служба событий не остановлена ​​и, следовательно, остается зарегистрировано. Например:

if (!EventBus.getDefault().isRegistered(this)) { 
    EventBus.getDefault().register(this); 
} 
+0

Благодарим вас за это, но, как упоминает CommonsWare, вопрос был больше о том, чтобы отправить ошибку участникам CWAC. Я бы не рекомендовал ваше решение подумать, я думаю, проблема здесь в том, что деятельность не является должным образом незарегистрированной, когда она должна быть. –

+0

@RenaudFavier, я думаю, что это ошибка, поскольку они не справляются с изменением ориентации, но как разработчик это проблема реализации. Как либо вы должны отменить регистрацию с этого события, как задокументировано или проверить при регистрации. – UMESH0492

 Смежные вопросы

  • Нет связанных вопросов^_^