问题:.aidl 生成的 .java 文件为空
例如,编译 IMyService.aidl 文件,生成的 IMyService.java 文件是空的, 文件大小为 0. IMyService.aidl 是有内容的,且合乎语法。
原因
在 .aidl 文件中,采用了 中文注释,通过二进制工具可以看到,中文是 utf-8 编码的。所以,可能的原因是 aidl.exe 对 utf-8 支持的不好。
解决
方案一:把中文去掉
感谢 小李-同学 的方案—— Android studio 创建aidl文件无法生成Java文件或Java文件为空(没有内容) ,可以解决问题。
此方案的缺点是,需要把所有中文都改成英文或者删除中文。
方案二:修改文件编码格式为 ANSI
既然 aidl.exe 对 utf-8 支持的不好,也可以用文本编辑器(例如 notepad++)将文件的编码格式改为 ANSI (菜单 Encoding -> Convert to ANSI),然后可以编译成功了。