Java Android/Eclipse:如何将本地包优先于库包

Java Android/Eclipse:如何将本地包优先于库包,java,android,eclipse,jar,Java,Android,Eclipse,Jar,我正在使用Eclipse,我有一个Android应用程序,它由两个包组成,一个是核心包,是应用程序,另一个是设置包,用于存储应用程序的一系列全局设置(例如,应用程序的应用内购买市场密钥)。应用程序还导入一个库(例如应用程序内包装库),该库反过来也使用上述全局设置包的副本 到目前为止,我是如何通过三个项目实现这一点的;应用程序、库和第三个用于设置的应用程序(作为库)。设置库导出为Jar,然后放入库的构建路径中,并从顶级应用程序引用库,以避免可怕的“多个dex文件”错误(如果我从MyLib引用MyS

我正在使用Eclipse,我有一个Android应用程序,它由两个包组成,一个是核心包,是应用程序,另一个是设置包,用于存储应用程序的一系列全局设置(例如,应用程序的应用内购买市场密钥)。应用程序还导入一个库(例如应用程序内包装库),该库反过来也使用上述全局设置包的副本

到目前为止,我是如何通过三个项目实现这一点的;应用程序、库和第三个用于设置的应用程序(作为库)。设置库导出为Jar,然后放入库的构建路径中,并从顶级应用程序引用库,以避免可怕的“多个dex文件”错误(如果我从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包


我是否遗漏了这种方法的某些内容,或者我应该采用完全不同的方法?

我可以回答我自己的问题,我可以这样做,因为我在最初的问题中遗漏了一些信息,这些信息被证明是非常相关的。最后,我犯了一个愚蠢的错误——尽管如此,这个答案可能会在将来帮助其他人,因为我确信我不会垄断愚蠢的错误

本质上,上述设计没有问题。我的错误是在设置类中,例如,我将要使用和覆盖的各种变量设置为:

public final static String MyVar = "Foobar";
这自然意味着MyApp.Settings.MyVar无法覆盖Settings.MyVar,因为它被标记为final。因此,我删除了设置和MyApp中所有设置变量的最终标记。设置正确地覆盖了它们