AIDL引用报错

AIDL引用报错

这是bean对象 实现了parcelable 

package com.example.stepcountapp.beans;

import android.os.Parcel;
import android.os.Parcelable;

public class ChartViewBean implements android.os.Parcelable {

    private  int[] arrayData = new int[1440];
    private int index = 0;

    protected ChartViewBean(Parcel in) {
        arrayData = in.createIntArray();
        index = in.readInt();
    }

    public static final Creator<ChartViewBean> CREATOR = new Creator<ChartViewBean>() {
        @Override
        public ChartViewBean createFromParcel(Parcel in) {
            return new ChartViewBean(in);
        }

        @Override
        public ChartViewBean[] newArray(int size) {
            return new ChartViewBean[size];
        }
    };

    public int[] getArrayData() {
        return arrayData;
    }

    public void setArrayData(int[] arrayData) {
        this.arrayData = arrayData;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeIntArray(arrayData);
        parcel.writeInt(index);         //写入的顺序和构造方法里读取的顺序必须一致
    }
}

这是与bean对象同名的aidl文件

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

这是aidl文件位置及代码http://img1.sycdn.imooc.com//climg/5d901a57090e7b9f03030453.jpg

// IMyAidlInterface.aidl
package com.example.stepcountapp.service;
import com.example.stepcountapp.beans.ChartViewBean;

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

interface IMyAidlInterface {

//获取计步器步数
    int getStepCount();
    //重置计步器步数
    void resetCount();
    //开始计步
    void startStepCount();
    //停止计步
    void stopStepCount();
    //获取消耗的卡路里
    double getCalorie();
    //获取走路的距离
    double getDistance();
    //保存数据
    void saveData();
    //设置传感器敏感度
    void setSensitivity(float sensitivity);
    //获取传感器敏感度
    double getSensitivity();
    //获取采样时间
    int getInterval();
    //设置采样时间
    void setInterval(int interval);
    //获取时间戳
    long getStartTimeStamp();
    //获取服务运行状态
    int getServiceStatus();
    //获取图表数据
    ChartViewBean getChartData();
}

这是报的错

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

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

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



不添加 ChartViewBean getChartData(); 这一行代码便没有问题 添加了之后 在service中引用的时候也不会实现getChartData()方法 并且rebuild就会报错

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

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

1回答
好帮手慕雪 2019-09-29 14:06:05

你得放在aidl目录下哦。

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

同学也可以参见,上一节课中的教辅 《Android之AIDL定义规则.pdf》

http://file.mukewang.com/class/assist/562/4289211/40ex7haio03/Android%E4%B9%8BAIDL%E5%AE%9A%E4%B9%89%E8%A7%84%E5%88%99.pdf

祝:学习愉快

  • 提问者 神祗之殇 #1
    放在aidl文件夹下了 也没有用
    2019-09-29 16:13:43
  • 好帮手慕雪 回复 提问者 神祗之殇 #2
    别忘记rebuild project一下哈。如果还有错的话,请贴一下最新的信息。
    2019-09-29 18:44:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

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

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

在线咨询

领取优惠

免费试听

领取大纲

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