为啥不能将 .aidl 放入库项目中?
Posted
技术标签:
【中文标题】为啥不能将 .aidl 放入库项目中?【英文标题】:Why can't a .aidl be placed into a library project?为什么不能将 .aidl 放入库项目中? 【发布时间】:2012-02-09 07:56:28 【问题描述】:我遇到了一条评论 this answer,其中指出图书馆项目:
-
无法保存 .aidl 文件,
不能依赖另一个库项目,
不能持有资产
嗯,这个评论是大约一年半前发表的,我可以非常肯定地告诉你,第 2 项不再正确(September 2010?),因为我有一个完美的工作项目,由一个依赖于另一个库项目的库项目。
所以,我的问题有两个:
-
库项目不能保存
.aidl
文件仍然是真的吗?
如果#1 的答案是肯定的,那么这是什么原因?
顺便说一句,作为一个实验,我尝试将IMarketBillingService.aidl
(来自应用内计费示例)放在一个库项目中(还没有任何使用它的东西),并且项目像以前一样构建和运行。所以,如果库项目仍然不可能包含.aidl
,那么这一定是更深层次的东西......
【问题讨论】:
【参考方案1】:答案是“不”。您可以在库项目中使用 AIDL 文件。我在三个不同的项目中使用了这样的设置。不记得确切的时间,但他们在不久前修复了这个问题(可能是当他们将库支持添加到 ADT 时)。它之前不起作用的原因是 ADT 构建器无法识别 AIDL 文件并且没有生成必要的 Java 存根。
【讨论】:
谢谢!事实证明,最近删除了另一个限制:Generate a library project into its own JAR file。请注意,同一页面上的文档自相矛盾,但我刚刚测试了这个新功能,您可以独立从库项目生成 JAR,而不依赖于应用程序项目。 是的,您可以生成一个 JAR。但是,jar 不包含任何资源,因此如果您在库项目中有布局、字符串等,您不能只将 jar 放到您的应用项目中。直接关注 ADT 站点以获取最新信息,文档有时已过时。 sites.google.com/a/android.com/tools/recent sites.google.com/a/android.com/tools/recent 链接的另一个 +1 - 我不知道那个页面。这非常有用。谢谢!以上是关于为啥不能将 .aidl 放入库项目中?的主要内容,如果未能解决你的问题,请参考以下文章