2 qq 30339955 qq_30339955 于 2016.01.26 09:25 提问

安卓 eventbus打包时报错????

a.a.a.g: Subscriber class com.winway.ui.MainActivity has no methods called onEvent
mainactivity是有这个方法的,急求各位,有遇到这个问题的没有?

2个回答

leilba
leilba   Rxr 2016.01.26 09:37

打包的时候加了代码混淆是吧?建议对eventbus的混淆部分处理一下,
网上扒了一个方法,在proguard-project.txt中添加一下:
-libraryjars libs/eventbus-1.0.1.jar
-keepclassmembers class ** {
public void onEvent*(**);
}
-keepclassmembers class ** {
public void xxxxxx(**); //所有监听的方法都要列在这里
}

也可以看一下这两个文章(关键词搜索到的):
http://my.oschina.net/janson2013/blog/417073
http://blog.csdn.net/lovexjyong/article/details/24652085
祝你解决问题

leilba
leilba 回复Activity_菜鸟: 你如果配置了混淆的话,那么混淆会在打包的时候调用,混淆成功了的话打包生成的apk包会比debug生成的临时包要小一些,而且反编译后拿到的源码会变得很难读,,一般混淆会将变量名和方法名该成a,b,c这种不明意思的东西
2 年多之前 回复
qq_30339955
qq_30339955 你好,我是菜鸟一枚。照提供的方法添加了,还是没有解决。想请教下怎么看到我的代码混淆成功了?
2 年多之前 回复
sinat_29360803
sinat_29360803   2017.11.21 11:25

感谢你的方法,我是这样的

EventBus

-keepattributes Annotation
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe ;
}
-keep enum org.greenrobot.eventbus.ThreadMode { ; }
-keepclassmembers class *
{
public void onEvent*(**);
}
-keepclassmembers class ** {
public void onEventMainThread(**);
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
eventbus打包混淆问题
在android打包的时候,如果加入了第三方包,以eventbus为例子,如果代码里面做了混淆处理,那么打的包就会报错,提示为找不到public void onEvent方法。为了解决这个问题我们需要在proguard-rules.pro里面加入如下内容就会在app打包的时候避免被混淆 -keep class de.greenrobot.event.** {*;} -keepclassmemb
关于eventbus打包混淆后运行出错的问题
相信看到这里的朋友都已经知道eventbus怎么使用了,我就不多说了,不清楚怎么使用的,我在这里附上一个连接(关于eventbus3.0的详细应用) http://blog.csdn.net/itachi85/article/details/52205464 我在这里主要是想记录一下自己碰到的问题: 我在用android studio打包混淆后,eventbus应用总是报错找不到
eventbus打包时报错
在proguard-project.txt中添加一下: -libraryjars libs/eventbus-1.0.1.jar -keepclassmembers class ** { public void onEvent*(**); } -keepclassmembers class ** { public void xxxxxx(**); //所有监听的方法都要列在这里 }
为什么你应该停止使用EventBus
为什么你应该停止使用EventBus 原文链接 : Why you should avoid using an event bus 原文作者 : Tony Cosentini 译文出自 : 开发技术前线 www.devtf.cn 文中的EventBus多指事件总线这种设计模式,而非EventBus这个具体的类库。我经常看到EventBus被作为一种通用模式应用在Androi
AndroidStudio关于EventBus报错解决方法its super classes have no public methods with the @Subscribe
今天使用EventBus,这行报错:EventBus.getDefault().register(this);查看日志显示,its super classes have no public methods with the @Subscribe annotation虽说有提示,但还是一头雾水,只能一步一步踩坑了。经过不断试错,终于找到问题所在: EventBus接收消息的方法,即使用@Subscr
EventBus 注册错误no public methods with the @Subscribe annotation
今天无聊试了一下EventBus 一切都很顺利 但是一测试,第一步就错了。日了 EventBus.getDefault().register(this); 这行报错 上网找了半天没找到答案,然后一看日志 ...no public methods with the @Subscribe annotation 意思是没在它的回调方法上加注解吧。 好吧,网上的教程一般都没说这个问
【Android】AndroidStudio关于EventBus报错解决方法its super classes have no public methods with the @Subscribe
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing首先说明,以前我用eventBus的jar包写得项目demo,前几天就写了一个EventBus的实例,这次我没用jar包,直接用gradle引用的,可是demo写完了,报错: its super classes have no pub
Android EventBus3.0实例使用详解及封装调用
EventBus是使用十分广泛的事件总线框架, 2.0到3.0的变化还是挺大的 今天准备重构代码,关于解耦想到了用EventBus,发现EventBus出了3.0的beta版,使用方式略有区别,特此记录。如果不会用EventBus的,请参考教程。 3.0与2.x的区别 主要区别在订阅函数的不同 EventBus2.x中只暴露了四个方法供用户调用,分别是 onEvent
关于在EventBus混淆打包问题
解决EventBus打包混淆问题
Android 4.4版本 EventBus报错 java.lang.NoClassDefFoundError: android/os/PersistableBundle
原因好像是因为重写某个生命周期方法,造成覆盖的原因.在低版本才会报错高版本没有问题.我这儿原因是重写了 onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)这个方法,注释以后没有问题,我看别人说升级到3.0.但是我本来就是使用的3.0版本的还是有问题. 推荐阅读:http://greenrobot.o...