1.今天调试发现运行直接退出,后来发现,是控件没有声明ID
2.今天使用android Studio 时,提示有新版本,手贱点了升级,然后就各种下载各种更新,浪费了好多时间。最后运行时,发现很多程序的gradle的更新。烦不胜烦。很多项目要更新。最后直接点击不更新。省事了。但是后来发现一个问题,studio中的 工具 Android Device monitor 不能用了,提示异常,让看日志。在网上搜索了各种解决方案,比如用管理员模式运行。最后都解决不了我的问题。最后发现一片文章,提示可能是jdk版本问题。 我的是1.7的。改成9.0.1,不行。最后下载了个1.8的,终于解决了问题。
3.今天在研究Android Studio 的 Service时发现一个问题,使用本地服务没有问题,但是调用远程服务时,需要引入aidl文件,这个时候编译该文件出现了问题
刚开始以为时环境问题,结果百度查询了半天都没有解决。后来想想也许是代码本身的问题,然后换个方向搜索,找到了相关答案。原来编译时缺少一个aidl文件,这个文件很特殊,必须和你定义的
parcelable 类名称一致,而且必须在同一个包下面,并且内部需要写明定义的包名,导入的类名,和 parcelable 名,如下:
定义好了这个文件,编译顺利通过了。// IStudentService.aidl package com.study.study_service; // Declare any non-default types here with import statements import com.study.study_service.Student; //定义打包名称 parcelable Student;
4.aidl客户端调用方法时提示 service intent must be explicit
原代码:
Intent intet = new Intent("com.study.study_service.RemoteService.Action");
出现标题所述错误。解决方式:
Intent intet = new Intent(); intet.setAction("com.study.study_service.RemoteService.Action"); intet.setPackage("com.study.study_service");bindService(intet, remoteConn, Context.BIND_AUTO_CREATE);显示指定Action和Package(被调用应用的包名)。