android - 命令 "Fix Project Properties"究竟做了什么?

标签 android eclipse eclipse-plugin adt

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

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

谢谢

最佳答案

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

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 最后

关于android - 命令 "Fix Project Properties"究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056511/

相关文章:

java - 导入Android Listview通过pull刷新,项目属性错误

eclipse - Scala Eclipse 插件 java.lang.ClassNotFoundException

eclipse - 从 IDE 外部进行版本控制是一种好习惯吗?

android - java.lang.IllegalStateException : Expecting . ,<, or ;, 但解包时发现 firebaseperf

android - JavaFXPorts(Gluon Plugin) 在安卓上保存文件

java - 关闭 Android 应用程序后 HashMap 中的数据

android - 操作栏后退按钮未在 Android 中显示

Eclipse - Mylyn 窗口修剪事件任务多次显示

python - 将 Eclipse 配置为在完成时发出蜂鸣声(Python、Linux)

java - Eclipse 插件 - TreeViewer 显示大量文本