2014-12-28 4 views
3

Я новичок в Android и работает на app.help мне в this.My Вход здесьНе удалось послать сообщение об ошибке Event

Could not dispatch event: class com.shalom.shalombase.event.RequestPurchaseEvent to handler [EventHandler public void com.shalom.shalombase.activity.MainActivity.onRequestPurchaseEvent(com.shalom.shalombase.event.RequestPurchaseEvent)]: null 
     at com.squareup.otto.Bus.throwRuntimeException(Bus.java:456) 
     at com.squareup.otto.Bus.dispatch(Bus.java:386) 
     at com.squareup.otto.Bus.dispatchQueuedEvents(Bus.java:367) 
     at com.squareup.otto.Bus.post(Bus.java:336) 

Myfragment subcriptionfragment, что размещение событие основной деятельности.

public class SubscribeFragment extends ShalomBaseFragment { 


private Button subscribeLayout; 
private LinearLayout subscribebuttonslayout; 
private FrameLayout sampleframe; 
private RelativeLayout subscribelayout; 
View progressLayout; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    return inflater.inflate(R.layout.subscribe_layout, container, false); 
} 

@Subscribe 
public void onStoreProgressEvent (StoreProgressEvent event) { 

    if(event!=null&&progressLayout!=null) 
    { 

     if(event.isInProgress) 
      progressLayout.setVisibility(View.VISIBLE); 
     else 
      progressLayout.setVisibility(View.GONE); 

    } 
} 


@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 

    super.onViewCreated(view, savedInstanceState); 
    initialize(view); 

    subscribebuttonslayout.setVisibility(View.VISIBLE); 
    subscribelayout.setVisibility(View.VISIBLE); 

    subscribeLayout.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      bus.post(new RequestPurchaseEvent(BaseConstants.YEARLY_SUBSCRIPTION)); 

     } 
    }); 

    getChildFragmentManager().beginTransaction() 
      .replace(R.id.sample_frame, new LibrarySamleIssueFragment()) 
      .commit(); 



} 

private void initialize(View view) { 

    subscribeLayout = (Button) view.findViewById(R.id.button1); 
    subscribebuttonslayout = (LinearLayout) view.findViewById(R.id.subscribe_buttons_layout); 
    sampleframe = (FrameLayout) view.findViewById(R.id.sample_frame); 
    progressLayout = (View) view.findViewById(R.id.progress_layout); 
    subscribelayout = (RelativeLayout) view.findViewById(R.id.subscribe_layout); 
} 



    } 

Пожалуйста, помогите мне в this.It работает отлично на S3, но это создает проблемы на Nexus7. Я не то, что проблема с code.I путаюсь в этом

+0

Добавьте сюда свой класс, скорее всего, вы устанавливаете свой RequestPurchaseEvent null. –

+0

@oguzhand посмотреть мои правки, у меня есть почтовый индекс моего класса –

+0

Проверьте это решение: http://stackoverflow.com/questions/24203515/runtimeexception-could-not-dispatch-event-otto –

ответ

2

код OTTO:

method.invoke(target, event); 

следующая операция:

@Subscribe 
public void yourMethod(Event event) { 
    //your code throw exception 
} 

ваш метод бросить исключение пойманной на Оттона

так, это мое состояние.

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