无法导入AIDL,Service中出现Can not resolve ICalculator报错
解决AIDL接口无法导入的问题
检查AIDL文件目录结构
- AIDL文件必须放在
src/main/aidl目录下,且包名要和你的Service所在包名一致(若不在同包则需对应调整导入路径)。比如Service在com.example.myapp包下,AIDL文件就得放在src/main/aidl/com/example/myapp/ICalculator.aidl,这样编译后生成的Java接口才会在对应包下,才能正常识别。 - 右键创建时如果选错了包,手动把AIDL文件移到正确的aidl子目录下即可。
手动触发项目编译
- Android Studio不会实时生成AIDL对应的Java接口,需要手动编译:点击顶部菜单栏
Build > Make Project(快捷键Ctrl+F9/Cmd+F9)。编译完成后,系统会在build/generated/aidl_source_output_dir/debug/out目录下生成ICalculator.java文件,此时就能正常导入了。
核对导入语句
- 确保Service中的导入语句正确,比如AIDL包名为
com.example.myapp,导入语句应为:import com.example.myapp.ICalculator; - 若AIDL在不同包下,要导入对应的完整包路径,或者直接用全限定名调用接口。
清理重建项目
- 要是上面的步骤都没用,试试清理项目:点击
Build > Clean Project,再执行Rebuild Project,能解决不少缓存导致的编译识别问题。
内容的提问来源于stack exchange,提问作者D.J
相关产品推荐
相关产品推荐

