安卓:Eclipse无法识别AIDL文件

4
我已经反复查看过Eclipse(3.6,带有2.2 Android SDK),但它无法处理我创建的AIDL文件。该AIDL文件与其他源代码位于同一位置,遵循Java风格。我读到Eclipse应该只为在AIDL文件中声明的接口生成存根,但它并没有出现在gen文件夹或其他任何我见过的地方,并且项目无法构建,因为在AIDL中指定的接口未被找到。我怀疑自己做了一些愚蠢的事情或者没有理解某些内容,但是尽管我已经努力查找和尝试,我仍然不明白,Eclipse仍然失败。
我的AIDL: package com.example.helloandroid;
interface HOSPlayerInterface { public void playURL(String url); public boolean pause(); public boolean resume(); public void stop(); }
... 而这个AIDL存在于com/example/helloandroid目录中。Eclipse没有识别它,也没有突出语法,运行AIDL等等。我不知所措。Android插件已安装并正常工作,因为我能够构建和运行不需要AIDL的简单Android项目。谢谢您的帮助。

1
AIDL文件的名称是IHOSPlayerInterface.aidl吗? - scorpiodawg
@scorpiodawg 不错的想法。我一直在想,Eclipse/ADT什么时候会创建相应的类,但结果是我的接口名和文件名不一样。我之前并没有考虑到这一点,因为AIDL文件并不是严格意义上的Java文件,也没有编辑器来指出错误。虽然编辑器会很方便,但我猜AIDL文件通常都比较简单。 - spaaarky21
2个回答

2
只需在方法声明之前删除所有“public”访问修饰符即可。以下代码在我的项目中有效。
package com.example.helloandroid;

interface HOSPlayerInterface { 
    void playURL(String url); 
    boolean pause(); 
    boolean resume(); 
    void stop(); 
}

如果在Eclipse中,AIDL文件不能编译成功,可以尝试删除"gen"文件夹并重新构建项目。

1

有任何构建错误吗?由于XML或类似的解析错误,IDE可能会在编译.aidl文件之前退出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接