What does the command “Fix Project Properties” exactly do?

感情迁移 提交于 2019-11-30 17:09:21

By looking into ADT source code, specifically into FixProjectAction and reading source and comments we can see that it calls:

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

ProjectHelper.fixProject(project) does:

  • creates Java project
  • fixes classpath entries to ensure that:
    • the project does not reference any old android.zip/android.jar archive
    • the project does not use its output folder as a sourc folder
    • the project does not reference a desktop JRE
    • the project references the AndroidClasspathContainer.

ProjectHelper.fixProjectNatureOrder(project) reorders project natures, so that Android project nature is first.

AndroidNature.configureResourceManagerBuilder(project) adds the ResourceManagerBuilder, if its not already there. It'll insert itself as the first builder.

AndroidNature.configurePreBuilder(project) adds the PreCompilerBuilder if its not already there. It'll check for presence of the ResourceManager and insert itself right after.

AndroidNature.configureApkBuilder(project) adds the .apk builder at the end if it's not already there.

Last three calls ensure that you have correct builder for your project. When you look at your Builders section in eclipse project properties you will see:

  • Android Resource Manager first
  • Android Pre Compiler after Resource Manager
  • Android Package Builder last

Another result of running "Fix Project Properties" on a project is that any other projects in the same workspace that reference the project as an Android library may have jars which get linked in under "Android Dependencies" on the project build path.

This can result in multiple references to the same jar file or missing jar file references.

The fix is to remove those links from the related projects, remove the "Android Dependency" and re-run "Fix Project Properties".

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!