当.jar包含EventBus模块时

时间:2016-03-22 09:30:44

标签: android xamarin

我必须绑定一个包含Eventbus模块的(.jar)文件。当我打电话给它时报告了一个例外:XXXActivity has no public methods called onEvent

但实际上活动有一个onEvent方法。

可以帮帮我吗?

这是我的代码!

[Activity(Label = "BaseActivity")]
public class BaseActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        //EventBus.Default.Register(this);
        try
        { 
            JMessageClient.RegisterEventReceiver(this.Application.ApplicationContext);
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(" ==ex==" + ex.Message); 
        }
        // Create your application here
    }

public void onEventMainThread(CN.Jpush.IM.Android.Api.Event.MessageEvent Event)
    {
        System.Diagnostics.Debug.WriteLine(" ==1==");
    }
...

}

IMRecActivity

[Activity(Label = "IMRecActivity")]
public class IMRecActivity : BaseActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // Create your application here
    }

public void onEvent(CN.Jpush.IM.Android.Api.Event.MessageEvent Event)
    {
       // CN.Jpush.IM.Android.Api.Event.MessageEvent me = (MessageEvent)Event;
        CN.Jpush.IM.Android.Api.Model.Message msg = Event.Message;
        switch (msg.ContentType.ToString())
        {
            case "text":
       TextContent textContent = (TextContent)msg.Content;

                System.Diagnostics.Debug.WriteLine(" ==JMessage OnEvent==" + textContent.Text);
                break;
            default:
                System.Diagnostics.Debug.WriteLine(" ==JMessage OnEvent==" + msg.Content);
                break;
        }
        System.Diagnostics.Debug.WriteLine(" ==JMessage OnEvent==");

    }
}

JMessageClient.RegisterEventReceiver(this.Application.ApplicationContext);这用于在.JAR中注册一个EventBus.With代码,你可以看到我已经声明了onEvent方法,但它无法正常工作。 顺便说一句,我已经使用了像jd-gui这样的工具来看它是如何工作的。 以下是下载.JAR文件的方法: https://www.jpush.cn/downloads/sdk/android/

官方网站,这是一个中文网站。 https://www.jpush.cn/common/products

1 个答案:

答案 0 :(得分:0)

我建议使用像jd-gui(http://jd.benow.ca/)之类的工具调查相应的.jar,以查看预期的方法可见性。然后,您可以使用相应的元数据修订来解决在创建生成的绑定后在那里找到的任何问题。

我已经创建了一个通用指南来帮助您完成此任务,您可以在其中查看:

https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb