坑爹啊,AIDL unable to start service not found

今天主要学习了一下AIDL,

什么是AIDL呢?实际上它实现了一种不同应用程序共享服务的方式,需要编写服务器端和客户端,服务器端需要编写AIDL文件和具体实现并发布到模拟器上,客户端绑定服务就可以调用了,网上有不少例子教如何调用的,例如:

http://android.tgbus.com/Android/tutorial/201105/353147.shtml

这里就不详述。

但是我在自己实现的时候遇到了一个问题:

bindService时找不到服务,网上的解决方法是:确保客户端调用的服务名和服务器端定义的服务名即<service>标签内的actionandroid:name里写的名字一致。我首先排除了这种可能。

但是错误依旧,没办法我想到在程序里打印出所有可见的全局服务,在后台日志发现确实找不到那个服务,后来发现我的客户端和服务端的包名一样,而在android系统中,是不允许有两个包名完全相同的应用程序存在,所以当我启动客户端时会把服务器端冲掉。

修改包名解决。

相关推荐