相信大家现在对于Google官网刚出的Android studio开发工具已经不陌生了吧,或许有人说我一直用的eclipse开发,对于android studio(以下简称as)很陌生,完全不知道怎么用。别急,本人现在开发也是在eclipse上来的,最近为了熟悉下as环境下开发,终于在这个Google推崇的软件上玩了下,真别说as的操作和eclipse截然不同,不过别急,相信大家都会有解决办法的哈。
好了,废话就不说了。现在说说本人在使用中遇到的问题吧,aidl( Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口)。大家在用eclipse开发的时候写aidl接口,是不是写好就自动的给build好了,然后就调用。很简单对吧。
恩,本以为在as中也可以这样干,对,就是这样干。。。咦,不对,怎么出错了呢?
好吧,出错了。没办法,上百度搜索下吧。大概说的是我的aidl文件出错了。仔细一看说的是我自定义的MusicInfo这个类没有导包进去,好吧,我居然不知道as不会自动导包。没办法,自己导入吧,重新rebuild下吧,本以为这次能成功了。等等,怎么又是错误啊
这次提示的是没有无法引用这个类,我就不信了,继续查找,然后发现我的aidl文件夹和网上所说的那种不同,没办法,改吧,照着网上说的在java底下新建一个aidl的包,然后再建一个和项目包名同名的文件夹,最后创建一个aidl文件,一步一步终于创建好了,然后把写好的类crtl-x ctrl-v移动过来,这次总可以了吧。信心十足重新编译,见证奇迹的时刻就要到来了。wait wait wait 为什么还有错误啊????
因为调用了我自己写的实体类,没有被找到,上网一查,说是也要生成一个aidl接口来调用,好嘛,照着前面的方法写好了aidl接口,再编译,我就不信了,what 还是找不到?后面了解到实体类放的位置不对,要放到与包名相同的包底下。。。。。照做不误,重新编译。。等待中,心情有点焦急…………好了,诶,还是不成功。失望了
还好还好,这次不是同一个错误了,要是还是相同的,我就要崩溃了。那这次的错误是对.9 path图片检查的,一般来说,warning警告不影响的,但这个已经严重影响了我的程序。居然编译都不行了。好吧。。。让我找到方法了。看了下网上给出的解释,说是buildTools版本的问题,将我的buildTools版本从21.0.3降低到20.0.0,做好了,抱着试下的心态,这次居然成功了,好激动,激动ing,终于看到了梦寐以求的SUCCESSFUL了。是在太开心了
到此为止aidl接口成功生成。总结如下
1、eclipse中的aidl接口写好,开发工具会自动帮你编译好,直接调用,但是在as中需要自己操作,首先你需要在main底下新建一个同包名的package,然后创建aidl文件
2、如果实体类中需要通过aidl调用,最好使用同包名的文件夹,在这个底下新建实体类,不然他不会被引用,至于原因嘛,我也不知道
3、as中对于.9 path图片要求挺高的,建议把BuildTools版本降低到20.0.0
好了,一上午就解决了这个小问题,as工具的学习之路还漫长着呢。继续加油学吧!!!!!