Android Eclipse库项目和库项目的项目特定配置文件的类型解析

时间:2011-09-29 18:37:09

标签: android eclipse project config

我有几个Android项目共享我的一个图书馆项目。我想让库代码依赖于某些配置类,这些配置类在依赖它的项目中定义不同。为了让非lib项目在Eclipse项目资源管理器中报告没有错误,这意味着在每个项目中使用相同的完全限定路径提供类定义。

所以结构看起来像这样

Tablet_Project:

定义 com.mycompany.config.ClientPrefs.java

Phone_Project:

定义 com.mycompany.config.ClientPrefs.java

Lib_Project:

依赖但未定义com.mycompany.config.ClientPrefs.java

一旦完成,项目在Eclipse项目资源管理器中显示没有错误,但是lib有一个红色的“X”表示它可以解析ClientPrefs引用 - 这是我所期望的,因为你无论如何都无法编译lib这似乎不是什么大不了的事。

问题:手机项目编译并运行正常,但平板电脑项目报告在启动之前需要修复错误,即使其工作区资源管理器中的任何位置都没有“X”指示符。 / p>

问题:在这些项目中,这种配置方法是否实际允许,或者电话项目是否只是一次事故?

修改 这是我能提出的最基本的例子: enter image description here

ProjectA和ProjectB依赖于ProjectLib作为Android库项目。如此处所示,ProjectLib的Util.java无法解析缺少的对Config.java的引用,但这对于A和B似乎并不重要,因为它们似乎为ProjectLib解决了这个问题,因此它们都构建并运行。其他人采用这种方法配置?

我问的原因是因为我有一个更大的项目集,其中一个不会再构建(在Eclipse中),大概是因为它的lib项目有错误。使用命令行中的Ant构建始终有效,这使我认为库项目被拉入依赖项目而不考虑它的Eclipse边界。

1 个答案:

答案 0 :(得分:0)

之前可以在ProjectA和ProjectB中创建相同的Config类,并从lib项目中排除Config类。

但是现在库项目被包含在jar中,并且不可能在eclipse中从jar中排除类。

我的临时解决方案是拥有config util类,它返回正确的Config,每次构建不同的项目时我都需要更改它。

public class Config {

    private static MyConfig config;

    public static MyConfig getConfig() {
        if (config == null) {
            config = new MyConfig();
        }
        return config;
    }
// ...
// CONSTANTS 
// ...
}