2016-02-08 15 views
8

Vì vậy, tôi đã tìm hiểu về mô-đun sự kiện của Robot Xanh. Thực hiện theo các hướng dẫn trên trang này để cố gắng làm cho nó hoạt động: http://greenrobot.org/eventbus/documentation/how-to-get-started/Bus sự kiện của GreenRobot không thể nhìn thấy chú thích, "không có phương pháp công khai"

Có vẻ đơn giản là đủ.

tôi đặt trong mã thích hợp, nhưng khi chạy trên thiết bị của tôi nhận được một vụ tai nạn:

org.greenrobot.eventbus.EventBusException: Subscriber class com.crowdlab.activities.LoadingActivity and its super classes have no public methods with the @Subscribe annotation. 

Một vài dòng đầu tiên của cái nhìn lớp học của tôi như thế này:

public class LoadingActivity extends BaseActivity implements AlertDialogButtonListener { 
    AlertDialog mDialog = null; 
    AlertDialog mPushDialog = null; 

    @Subscribe 
    public void onMessageEvent(MessageEvent event){ 
     Toast.makeText(this, "From Loading "+event.message, Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onStart() { 
     super.onStart(); 
     EventBus.getDefault().register(this); 
    } 

    @Override 
    public void onStop() { 
     EventBus.getDefault().unregister(this); 
     super.onStop(); 
    } 
    . 
    . 
    . 

Nó/dường như/chú thích ở đó. Việc biên dịch xảy ra mà không có nhiều như một cảnh báo. Tôi đang sử dụng phiên bản 3.0.0 như được chỉ định trong tệp gradle ...

Vì vậy, điều gì có thể sai? (RTFM đã được chấp nhận một cách biết ơn, chỉ cần biết vị trí của FM với bài viết có liên quan.)

Cảm ơn!

-Ken

Trả lời

7

Doh! Tôi đã chọn @Subscribe của Google thay vì Green Robot.

import com.google.common.eventbus.Subscribe; 

hơn

import org.greenrobot.eventbus.Subscribe; 

Các lỗi có lẽ nên đọc "không có phương pháp của việc thực hiện com.greenrobot.eventbus @Subscribe chú thích".

+3

Đối với tôi, đó là vì ProGuard. Đã sửa chữa tại đây: http://greenrobot.org/eventbus/documentation/proguard/ – Yani2000

Các vấn đề liên quan