命令"修复项目属性"到底做了什么?

Axe*_*cia 20 eclipse android eclipse-plugin adt

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

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

谢谢

Lud*_*vik 27

通过查看ADT源代码,特别是在FixProjectAction和阅读源代码和注释中,我们可以看到它调用:

ProjectHelper.fixProject(project);
ProjectHelper.fixProjectNatureOrder(project);
AndroidNature.configureResourceManagerBuilder(project);
AndroidNature.configurePreBuilder(project);
AndroidNature.configureApkBuilder(project);
Run Code Online (Sandbox Code Playgroud)

ProjectHelper.fixProject(项目)执行:

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

ProjectHelper.fixProjectNatureOrder(项目)重新排序项目性质,因此Android项目性质是第一位的.

AndroidNature.configureResourceManagerBuilder(项目)添加了ResourceManagerBuilder,如果它还没有.它会将自己插入第一个构建器.

AndroidNature.configurePreBuilder(项目)添加了PreCompilerBuilder(如果它尚未存在).它将检查ResourceManager的存在并立即插入.

AndroidNature.configureApkBuilder(项目)在最后添加.apk构建器(如果它尚未存在).

最后三次调用可确保您的项目具有正确的构建器.当您在eclipse项目属性中查看Builders部分时,您将看到:

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