我的问题涉及从命令行使用aidl.exe(在Windows系统上)。这个问题无关与Eclipse,Netbeans的,等如何使用SDK示例代码从命令行使用AIDL工具?
包含在Android SDK是以下三个AIDL定义文件:
IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl
位于在以下目录:
C:\ Android的SDK窗口\平台\机器人-2.1 \样品\ ApiDemos \ SRC \ COM \示例\机器人\的API \应用
为了简单起见,我将aidl.exe复制到上面的目录中。然后,在控制台窗口中,我成功地使用以下两个命令来生成.java文件:
C:\ Android的项目\ ApiDemos的\ src \ COM \例子\机器人\的API \应用> 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以下import语句:
进口com.example.android.apis.app.IRemoteServiceCallback;
,就会出现问题,当我运行本文件中的AIDL工具:
IRemoteService.aidl::19:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl
这样做会导致下面的错误消息,以在控制台窗口被打印couldn找不到类com.example.android.apis.app.IRemoteServiceCallback的导入
AIDL工具显然找不到IRemoteServiceCallback.aidl文件与它运行的同一个目录。按照AIDL工具的“用法”的消息,有,显然可以用来解决此问题的命令:
-I<DIR> search path for import statements.
的问题:我一直没能以这样的方式,以避免对指定-I错误消息并让AIDL工具使用'import'语句从.aidl文件生成一个.java文件。 (注:我设置Windows环境变量“路径”我的当前目录。)下面是我已经尝试了一些变化:我必须失去了一些东西简单
-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.
。令人惊讶的是,尽管我已经看到了各种地方发布的这个问题的变体,但我还没有看到有关AIDL命令行用法的答案或任何文档(除了aidl.exe使用信息之外)。有人能告诉我吗?
谢谢, 马特
我认为这是互联网上唯一记录的地方。谢谢你,你是英雄。 – benkc 2014-04-11 18:47:10