【问题标题】:What does the command "Fix Project Properties" exactly do?“修复项目属性”命令究竟做了什么?
【发布时间】:2011-05-19 09:27:01
【问题描述】:

“Project->Android Tools->Fix Project Properties”Eclipse命令exaclty有什么作用?

我已经阅读了很多次使用它,主要是在与 Eclipse 中的 Android R 生成问题相关的答案中,但对我来说它就像魔术一样,我按下它,我想它修复了一些项目属性,但没有任何反应.. . 没有视觉反馈,没有关于修复了哪些项目属性的信息......任何人都可以对它究竟做了什么提供一些见解?

谢谢

【问题讨论】:

  • 对于初学者:请注意,在 Android 工具中右键单击项目名称可以找到修复项目属性。

标签: android eclipse eclipse-plugin adt


【解决方案1】:

通过查看 ADT 源代码,特别是 FixProjectAction 并阅读源代码和 cmets,我们可以看到它调用了:

ProjectHelper.fixProject(project);
ProjectHelper.fixProjectNatureOrder(project);
AndroidNature.configureResourceManagerBuilder(project);
AndroidNature.configurePreBuilder(project);
AndroidNature.configureApkBuilder(project);

ProjectHelper.fixProject(project) 会:

  • 创建 Java 项目
  • 修复了类路径条目以确保:
    • 该项目没有引用任何旧的 android.zip/android.jar 存档
    • 项目不使用其输出文件夹作为源文件夹
    • 项目未引用桌面 JRE
    • 项目引用了 AndroidClasspathContainer。

ProjectHelper.fixProjectNatureOrder(project)重新排序项目性质,使Android项目性质优先。

AndroidNature.configureResourceManagerBuilder(project) 添加 ResourceManagerBuilder,如果它还没有的话。它将自己作为第一个构建器插入。

AndroidNature.configurePreBuilder(project) 如果 PreCompilerBuilder 不存在,则添加它。它会检查 ResourceManager 的存在并在之后立即插入。

AndroidNature.configureApkBuilder(project) 在末尾添加 .apk 构建器(如果它不存在)。

最后三个调用可确保您的项目具有正确的构建器。当您查看 Eclipse 项目属性中的 Builders 部分时,您会看到:

  • Android 资源管理器优先
  • 资源管理器后的 Android 预编译器
  • Android Package Builder 最后

【讨论】:

    【解决方案2】:

    在项目上运行“修复项目属性”的另一个结果是,同一工作区中将项目作为 Android 库引用的任何其他项目都可能具有链接到项目构建路径上的“Android 依赖项”下的 jar。

    这可能导致对同一个 jar 文件的多次引用或缺少 jar 文件引用。

    修复方法是从相关项目中删除这些链接,删除“Android Dependency”并重新运行“Fix Project Properties”。

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 2012-07-17
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2019-03-06
      相关资源
      最近更新 更多