Android Studio编写AIDL文件后如何实现自动编译生成
作者:EdwardChu123 发布时间:2022-01-25 16:44:38
在目录src/main 下新建了aidl 文件夹之后,在aidl文件夹中也创建了相同的包路径,
创建AIDL文件
XXX.aidl
如果XXX.aidl引用了一个java下的model例如引用了a.b.c.Model;
则需要在XXX.aidl文件中声明import a.b.c.Model;全路径。
并且创建另一个文件Model.aidl
在Model.aidl文件中声明以下内容
package xxxx包名称;
parcelable Model;
如果编译的时候提示AIDL文件引用的包找不到的话
要在build文件中声明以下内容:
android {
...
sourceSets.main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/aidl']
resources.srcDirs = ['src/main/java', 'src/main/aidl']
aidl.srcDirs = ['src/main/aidl']
res.srcDirs = ['src/main/res']
}
...
}
我的内容
Book.aidl
package used.tusdk.pczhu.com.tusdkused;
parcelable Book;
IBookManager.aidl
package used.tusdk.pczhu.com.tusdkused;
import java.util.List;
import used.tusdk.pczhu.com.tusdkused.Book;
interface IBookManager {
List<Book> getBookList();
void addBook(in Book book);
}
补充知识:Android studio 创建aidl文件无法生成Java文件或Java文件为空(没有内容)
as创建aidl生成的Java文件为空
在这里mark一下我自己发现的解决方案:
起初,我也搜索了很多篇博客文章,他们的方法还是没有解决我的问题,
他们的解决方法是, build-->rebuild project, 我告诉你他们的这个方法
是解决as根本没有生成aidl对应的Java文件.在我这里的问题有点不一
样,我生成了aidl对应得Java文件,但是这个Java文件是空得,没有代码得
Java文件,我反复尝试了将近两个小时,都没有解决...
经过多次尝试之后,我然后在aidl文件里面写了这样一句代码,生成Java成功
package com.example.date01;
// Declare any non-default types here with import statements
interface IMediaService {
void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
double aDouble, String aString);
void hello();
}
我之前一直报错得代码是这样子的
package com.example.date01;
// Declare any non-default types here with import statements
interface IMediaService {
void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
double aDouble, String aString);
//开始音乐
void openAudio(int position);
//开始播放
void start();
//暂停
void pause();
}
发现有什么区别了没(这是细节)
最后给出解决方案:
问题所在: 带中文注释得aidl文件生成得Java文件为空
解决就是, 把注释去掉或者添加英文注释
不知道这个方法对你们是否有效, 我的as版本是3.5
来源:https://blog.csdn.net/zhu512823459/article/details/52469200


猜你喜欢
- 前言我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的
- 有时候会不可避免使用动态表或者列进行业务处理。下面学习几种动态表/列的使用方式:【1】使用预编译即,默认值。<select id=&q
- struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个绝佳的替代方案。除
- Okhttp 处理了很多网络疑难杂症,比如从很多常用的连接问题中自动恢复。如果你服务器配置了多个IP地址,当一个IP地址连接失败后Okhtt
- 本文将介绍使用Spring Boot集成Mybatis并实现主从库分离的实现(同样适用于多数据源)。延续之前的Spring Boot 集成M
- java url中如何传递数组,springMVC框架controller类如何接收数组参数?下面介绍一下URL中传递数组参数方法:dd.d
- 继承ClassLoader并且重写findClass方法就可以自定义一个类加载器,具体什么是类加载器以及类加载器的加载过程与顺序下次再说,下
- 一、问题提出对于线段树,若要求对区间中的所有点都进行更新,可以引入懒操作。懒操作包括区间更新和区间查询操作。二、区间更新对 [l,r] 区间
- 前言最近遇到了这样一个工作场景,需要写一批dubbo接口,再将dubbo接口注册到网关中,但是当dubbo接口异常的时候会给前端返回非常不友
- 一、线程的生命周期1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间
- 1.RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不
- 前言大家在学习Java的过程中,或者工作中,始终都绕不开集合。在单线程环境下,ArrayList就可以满足要求。多线程时,我们可以使用Cop
- 把SpringBoot项目打包成Docker镜像有两种方案:全自动化:先打好docker镜像仓库,然后在项目的maven配置中配置好仓库的地
- IFormattable接口提供了ToString()方法的定义,使用该方法可以将对象的值按照指定的格式转化成字符串的功能。下面是ToStr
- 类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明。一、相关约定为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定
- 先看下效果图:这个需要用到1个开源的 库,这个后面也会说下的。工程目录:1. MainActivity.javapublic class M
- 最近在公司的功能需求中,需要实现可以签到的日历,签到后在签到过的日期做标志。本功能参考了网上一些大神的日历控件,在此基础上进行修改,已满足本
- 本文实例讲述了Android开发之OpenGL绘制2D图形的方法。分享给大家供大家参考,具体如下:Android为OpenGL ES支持提供
- 基本概念servlet 关系servlet 和 servletconfig 是一对一的关系;servletconfig 作用它存储 web.
- Java Comparable 和 Comparator 的详解及区别Java 中为我们提供了两种比较机制:Comparable 和 Com