Android / Eclipse:如何在库包上优先考虑本地化

时间:2014-05-31 09:37:56

标签: java android eclipse jar

我正在使用Eclipse,我有一个由两个软件包组成的Android应用程序,一个核心软件包即应用程序和一个Settings软件包,它存储了应用程序的一系列全局设置(例如应用程序的应用内购买市场密钥) )。该应用程序还导入一个库(例如,应用程序内包装器lib),该库也使用上述全局设置包的副本。

到目前为止,我如何实施这项工作是有三个项目的;应用程序,库和第三个用于设置(作为库)。设置库导出为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包。

我是否错过了这种方法,或者我应该看一个完全不同的方法?

1 个答案:

答案 0 :(得分:0)

我可以回答我自己的问题,我可以这样做,因为我在原始问题中遗漏了一些与之相关的信息。最后,这是我的一个愚蠢的错误 - 尽管如此,这个答案可能在将来帮助其他人,因为我确信我没有垄断愚蠢的错误。

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

public final static String MyVar = "Foobar";

这自然意味着MyApp.Settings.MyVar无法覆盖Settings.MyVar,因为它被标记为 final 。所以我删除了最后的标记到设置中的所有设置变量,MyApp.Settings正确地覆盖了它们。