我有几个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>
问题:在这些项目中,这种配置方法是否实际允许,或者电话项目是否只是一次事故?
修改 这是我能提出的最基本的例子:
ProjectA和ProjectB依赖于ProjectLib作为Android库项目。如此处所示,ProjectLib的Util.java无法解析缺少的对Config.java的引用,但这对于A和B似乎并不重要,因为它们似乎为ProjectLib解决了这个问题,因此它们都构建并运行。其他人采用这种方法配置?
我问的原因是因为我有一个更大的项目集,其中一个不会再构建(在Eclipse中),大概是因为它的lib项目有错误。使用命令行中的Ant构建始终有效,这使我认为库项目被拉入依赖项目而不考虑它的Eclipse边界。
答案 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
// ...
}