android – 在Gradle中跨模块子项目使用AIDL接口

android – 在Gradle中跨模块子项目使用AIDL接口,第1张

概述我有一个项目,包括多个gradle模块(插件com. android.library)相互引用(树,而不是平面).我强烈地使用AIDL,因此我在另一个模块(modB)的AIDL接口中引用来自一个模块(modA)的AIDL接口. MODA / src目录/主/ AIDL / MODA / foo.aidl: package modA; interface foo { void modAca 我有一个项目,包括多个gradle模块(插件com. android.library)相互引用(树,而不是平面).我强烈地使用AIDL,因此我在另一个模块(modB)的AIDL接口中引用来自一个模块(modA)的AIDL接口.

MODA / src目录/主/ AIDL / MODA / foo.aIDl:

package modA; interface foo {    voID modAcall();}

商业方法/ src目录/主/ AIDL /商业方法/ bar.aIDl:

package modB;import modA.foo;interface bar {    foo modBcall();}

商业方法/的build.gradle:

dependencIEs {    compile project(':modA')}

我可以在modB中的AIDL文件中引用modA的parcelables,我可以在modB中的java代码中引用modA的接口,但不能在modB中的AIDL中引用.而是由aIDl工具显示错误消息无法找到类的导入.

我注意到.aar文件也不包含库的aIDl接口的信息,只列出了parcelables.我想这与上述问题的原因相同.

由于我已经将aIDl文件放在一个地方,我不想将它们复制到另一个子项目,因为在这种情况下必须手动复制更改.我也不喜欢使用符号链接的想法,因为修改modB的src目录以包含来自modA的东西是错误的.

>有没有办法在aar中包含aIDl接口,以便其他模块可以使用它?
>是否可以在Gradle中扩展aIDl include路径以使用依赖模块的aIDl文件(对于子项目,它应该是可能的,因为aIDl文件存在于文件系统上)而不再“再编译”它们(类文件)生成的java接口/类已包含在aar / module导入中)?

解决方法 我找到了解决方案. AndroID gradle构建工具中有一个明显没有记录的功能,可以将任意的aIDl文件包含在输出.aar文件中.这使得可以在其他子项目中引用它们.
androID {    aIDlPackageWhiteList "modA/foo.aIDl"}

这远非理想,但至少可用于解决我的问题.

总结

以上是内存溢出为你收集整理的android – 在Gradle中跨模块/子项目使用AIDL接口全部内容,希望文章能够帮你解决android – 在Gradle中跨模块/子项目使用AIDL接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存