2012-07-24 188 views
4

大家都知道,现在Android的Eclipse + ADT IDE框架doesn't support (re)using assets from a Library Project多个项目之间共享资产

相反,应用程序所使用的任何资产的资源必须存储在资产/的应用项目本身的目录。

我的问题是,我有8(八!)应用程序使用相同的库项目,使用资产和前述限制的结果我必须复制/复制和同步每个资产文件到所有8个!)应用程序。

这是一个维护噩梦,它也容易出错。

任何想法如何通过在多个应用程序项目之间共享每个资产的单个副本来解决此问题?

注意:我想避免操作系统或文件系统相关的解决方案,如硬链接或软链接。如果它确实做了这项工作,我更喜欢像context.getAssets()这样的解决方案。

+2

'getAssets()'是一个运行时解决方案,而不是编译时解决方案,因此对您的情况看起来不合适,因为它实际上并不会将资产置于每个项目中。设置硬链接会让你花更少的时间写出问题。您能否扩展您的笔记,以便我们更好地理解硬链接的问题以及您期望getAssets()能够为您实际做什么? – CommonsWare 2012-07-24 15:30:31

+0

@CommonsWare你说得对。 'getAssets()'使用相同的有缺陷的资产机制,忽略库项目中的所有资产。我无法使用硬链接,因为这些项目位于各种Windows,Mac和Linux桌面以及笔记本电脑所访问的共享服务器上。建议? – 2012-07-24 15:41:02

+0

将硬链接放在服务器上。当服务器提供这些文件时,客户端应该忘记'asset /'目录是硬链接的。或者,找出与您的版本控制系统绑定的东西以启用共享(例如,git子模块)。 – CommonsWare 2012-07-24 15:43:08

回答

0

自发布该问题以来可能事情已发生变化,但我能够在Android项目中重复使用来自其他项目的资产文件。我创建了我的项目的资产文件夹作为linked folder。我发布了一个sample project来展示它的工作原理。