我使用的是Eclipse,我有一个由两个包组成的Android应用程序,一个核心包是应用程序,另一个是设置包,它存储了应用程序的一系列全局设置(例如,应用程序的应用内购买市场密钥)。该应用程序还导入一个库(例如,应用程序内包装器库),该库反过来也使用上述全局设置包的副本。
到目前为止,我是如何通过三个项目来实现这一点的: App、库和第三个用于设置的项目(作为库)。设置库导出为Jar,然后放入库的构建路径中,并从顶层应用程序引用该库,以避免可怕的“多个索引文件”错误(如果我从MyLib引用MySettings项目,就会发生这种错误)。总体而言,它看起来有点像这样:
MyApp (MyLib referenced)
- Core_App_Logic
- Settings
MyLib (MySettings.jar in build path)
- Lib_Logic
MySettings
- Settings资源的优先级设置正确;将使用MyApp中的资源,而不是MyLib中的资源。然而,虽然MyApp将使用MyApp.Settings包,但MyLib将使用MySettings.Settings包。
这种方法是不是遗漏了什么,或者我应该看一个完全不同的方法?
发布于 2014-06-05 15:13:00
我可以回答我自己的问题,因为我在原来的问题中遗漏了一些被证明是非常相关的信息。最后,这是我犯的一个愚蠢的错误--尽管如此,这个答案将来可能会对其他人有所帮助,因为我确信我不会垄断愚蠢的错误。
从本质上讲,上面的设计没有问题。我的错误出现在Settings类中,例如,我将想要使用和覆盖的各种变量设置为:
public final static String MyVar = "Foobar";这自然意味着MyApp.Settings.MyVar不能覆盖Settings.MyVar,因为它被标记为final。因此,我在设置中删除了所有设置变量的最后一个标记,MyApp.Settings正确地覆盖了它们。
https://stackoverflow.com/questions/23968500
复制相似问题