Что именно делает команда «Исправить свойства проекта»? - PullRequest
20 голосов
/ 19 мая 2011

Что делает команда Eclipse "Проект-> Инструменты Android-> Исправить свойства проекта"?

Я много раз читал, чтобы использовать его, в основном в ответах, связанных с проблемами генерации Android R в Eclipse, но для меня это похоже на волшебство, я нажимаю на него и полагаю, что он исправляет некоторые свойства проекта, но ничего не происходит .. Нет визуальной обратной связи, нет информации о том, какие свойства проекта были исправлены ... Кто-нибудь может дать некоторое представление о том, что именно он делает?

Thx

Ответы [ 2 ]

27 голосов
/ 19 мая 2011

Изучая исходный код ADT, в частности FixProjectAction и читая источник и комментарии, мы видим, что он вызывает:

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

ProjectHelper.fixProject (проект) делает:

  • создает проект Java
  • исправляет записи classpath, чтобы гарантировать, что:
    • проект не ссылается ни на один старый архив android.zip/android.jar
    • проект не использует свою выходную папку в качестве исходной папки
    • проект не ссылается на рабочий стол JRE
    • проект ссылается на AndroidClasspathContainer.

ProjectHelper.fixProjectNatureOrder (проект) изменяет порядок природы проекта, поэтому природа проекта Android является первой.

AndroidNature.configureResourceManagerBuilder (проект) добавляет ResourceManagerBuilder, если его там еще нет. Он вставит себя как первый строитель.

AndroidNature.configurePreBuilder (проект) добавляет PreCompilerBuilder, если его там еще нет. Он проверит наличие ResourceManager и сразу вставит себя.

AndroidNature.configureApkBuilder (проект) добавляет в конце компоновщик .apk, если его там еще нет.

Последние три вызова гарантируют, что у вас есть правильный компоновщик для вашего проекта. Когда вы посмотрите на раздел «Строители» в свойствах проекта Eclipse, вы увидите:

  • Диспетчер ресурсов Android сначала
  • Android Pre компилятор после диспетчера ресурсов
  • Android Package Builder последний
1 голос
/ 20 декабря 2012

Еще один результат запуска «Fix Project Properties» для проекта заключается в том, что любые другие проекты в той же рабочей области, которые ссылаются на проект как библиотеку Android, могут иметь файлы jar, которые связаны в разделе «Зависимости Android» на пути сборки проекта.

Это может привести к нескольким ссылкам на один и тот же файл jar или отсутствующим ссылкам на файл jar.

Исправление состоит в том, чтобы удалить эти ссылки из связанных проектов, удалить «Зависимость Android» и повторно запустить «Исправить свойства проекта».

...