我的问题涉及从命令行使用 aidl.exe(在 Windows 系统上)。本题与Eclipse、Netbeans等无关
Android SDK 中包含以下三个 AIDL 定义文件:
IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl
位于以下目录:
C:\android-sdk-windows\platforms\android-2.1\samples\ApiDemos\src\com\example\android\apis\app
为了简单起见,我把aidl.exe复制到上面的目录下。然后,在控制台窗口中,我成功地使用了以下两个命令来生成 .java 文件:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteServiceCallback.aidl C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl ISecondary.aidl
调用这些命令分别生成文件 IRemoteServiceCallback.java 和 ISecondary.java。到目前为止一切顺利。
我注意到这两个 .aidl 文件都很简单;它们不包含“导入”语句。
剩余的 .aidl 文件 IRemoteService.aidl 在第 19 行包含以下导入语句:
导入com.example.android.apis.app.IRemoteServiceCallback;
在这个文件上运行AIDL工具时出现问题:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl
这样做会导致在控制台窗口中打印以下错误消息:
IRemoteService.aidl:19: 找不到类 com.example.android.apis.app.IRemoteServiceCallback 的导入
AIDL 工具显然无法在其运行的同一目录中找到 IRemoteServiceCallback.aidl 文件。根据 AIDL 工具的“用法”消息,有一个命令显然可以用来解决这个问题:
-I<DIR> search path for import statements.
问题:我无法指定 -I 来避免出现错误消息并让 AIDL 工具使用“导入”语句从 .aidl 文件生成 .java 文件。 (注意:我将 Windows 环境变量“路径”设置为当前目录。)以下是我尝试过的一些变体:
-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.
我一定是遗漏了一些简单的东西。令人惊讶的是,尽管我已经在不同的地方看到了这个问题的变体,但我还没有看到关于 AIDL 命令行用法的答案或任何文档(aidl.exe USAGE 信息除外)。有人可以告诉我吗?
谢谢, 马特
最佳答案
您必须提供源文件的文件夹路径,但不能提供基本 src 文件夹之后的路径。 因此,在您的情况下,正确的命令是:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl -IC:\Android-project\ApiDemos\src\ IRemoteService.aidl
关于android - 如何使用 SDK 示例代码从命令行使用 AIDL 工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179453/