aidl问题 编译报错

aidl问题 编译报错

在新建了PedometerChartBean.aidl文件以后,编译的时候报下面的错误

Process 'command '/home//Android/Sdk/build-tools/27.0.3/aidl'' finished with non-zero exit value 1

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
irista23 2018-10-22 16:04:11

关于步骤3,参考如下时间点,老师在视频中有详细演示步骤。

http://img1.sycdn.imooc.com//climg/5bcd838f00017fe017080893.jpg

另外,是不是两个aidl文件中的代码搞混了呢?

http://img1.sycdn.imooc.com//climg/5bcd84140001a8ab12350892.jpg

http://class.imooc.com/course/qadetail/73540

上面问答里已经把两个aidl的作用和代码的区别及正确写法贴图给你了,请参照修改一下

irista23 2018-10-22 14:02:55

项目中关于aidl部分的操作如下:

1、创建aidl文件添加接口方法(对照源码IPedometerService.aidl)

2、编写实体类PedometerChartBean并实现序列化(对照源码PedometerChartBean.java)

3、创建和实体类同名的aidl文件添加包名和parcelable声明(对照源码PedometerChartBean.aidl)

4、在1创建的aidl文件中导入实体类包名(对照源码import com.imooc.model.PedometerChartBean;)

另外注意到同学没有开启《Android数据通信开发与应用》阶段的课程,因为路径课程的设计是按照学习曲线递进式安排的,项目中这里用到的aidl具体已经在下图课程中详细介绍了,这里老师主要是针对该项目的应用。建议同学按照学习路径来学习,一遍更扎实得掌握所学内容。

http://img1.sycdn.imooc.com//climg/5bcd676a00011f7a16240840.jpg

  • 提问者 安卓界的阿凡达 #1
    步骤3,请详细说明怎么创建同名的aidl文件,在别的回答里,你先说新建一个别的名称的文件,然后再改成相同的,我按你说的操作,就会报错。然后让我先把parcelable PedometerChartBean;删掉再build的,我也试过了,也不行。你不觉得这些说明很让人费解吗?
    2018-10-22 15:52:04
  • irista23 回复 提问者 安卓界的阿凡达 #2
    parcelable PedometerChartBean去掉的是接口定义文件是I开头的service下创建的接口定义文件就是interface文件不是PedometerChartBea.aidl,PedometerChartBea.aidl文件中的parcelable PedometerChartBean不能去掉,这个是代表引入,只有加上这个,IPedometerService.aidl才可以使用PedometerChartBean
    2018-10-22 16:12:42
提问者 安卓界的阿凡达 2018-10-22 11:29:40

能不能把如何添加aidl文件的准确步骤写一下?问答里说的和视频里的都不一样,到底要不要改名,怎么改,到底是怎么写,你能归纳一下写出来吗?这样一问一答很浪费时间。

irista23 2018-10-22 11:05:52

1、下图中红框圈起来的文件作用是引入了一个序列化对象供其他的AIDL文件使用,所以在下面aidl中通过导入包就可以直接使用该对象了。

http://img1.sycdn.imooc.com//climg/5bcd3e040001001102740100.jpg

2、如果不改名字,创建的两个文件就冲突了

http://img1.sycdn.imooc.com//climg/5bcd3e7e0001ae9303240364.jpg

提问者 安卓界的阿凡达 2018-10-22 10:30:30

文件结构是这样的
http://img1.sycdn.imooc.com//climg/5bcd36310001222219201080.jpg

  • 提问者 安卓界的阿凡达 #1
    所以PedometerChartBean的aidl文件到底要不要改名?
    2018-10-22 11:21:34
提问者 安卓界的阿凡达 2018-10-22 10:19:26

我的aidl文件,文件名是PedometerChartBean.aidl

// IPedometerChartBean.aidl
package com.example.beans;
parcelable PedometerChartBean;

// Declare any non-default types here with import statements

interface PedometerChartBean {
   /**
    * Demonstrates some basic types that you can use as parameters
    * and return values in AIDL.
    */
   void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
           double aDouble, String aString);
}

  • 先把parcelable PedometerChartBean;删掉试一下
    2018-10-22 10:31:07
  • 提问者 安卓界的阿凡达 回复 irista23 #2
    删掉parcelable PedometerChartBean以后, 如果把文件名改成IPedometerChartBean,就可以build成功。如果文件名PedometerChartBean,会报错说名字重复
    2018-10-22 10:38:47
  • 提问者 安卓界的阿凡达 回复 irista23 #3
    parcelable PedometerChartBean删掉以后,还要加上这一句吗?
    2018-10-22 11:24:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

Android多媒体开发与应用2018版
  • 参与学习           人
  • 解答问题       241    个

本专题是动画、游戏、音视频等实际应用开发必备技能。课程深入到Android事件总线,利用主流框架实现消息推送、自定义事件统计分析等功能。最后带你开发一款利用传感器实现计步、距离、热量等功能的App。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师