2010-06-30 4 views
3

Я немного застрял на этом, и надеялся, что у вас может быть какой-то вклад, чтобы помочь мне.Не удалось разрешить * для реализации компонента

Я получаю сообщение «Не удалось разрешить» для реализации компонента. » сообщение об ошибке. Однако все, что я прочитал об этом через Google, нисколько не помогло моему делу. Я полагаю, я просто пропустил что-то очевидное, но, возможно, это нечто более серьезное.

Итак, чтобы решить эту проблему, я пробовал две вещи, и оба они работают, насколько они меня берут. Во-первых, я добавил новый компонент того же самого сорта, а затем скопировал содержимое компонента ошибки в него. Я заменяю страницу «Просмотр» страницы новым компонентом (который, насколько я могу сказать, имеет IDENTICAL, но с другим именем), и ошибка компилятора исчезает.

Я также могу решить это, просто переименовав исходный компонент &, разрешив мне рефакторинг FB4. Ошибка снова исчезнет. Но если я снова переименую обратно на исходное имя, я снова получу ошибку компилятора.

Я пытался очистить проект несколько раз, и это не помогает. Не удаляет рабочее пространство и не импортирует проект.

Я действительно хотел бы понять, что я сделал неправильно здесь. Что мне не хватает?

Спасибо большое!

+0

Как называется ваш компонент? Я видел странные конфликты имен, подобные этому прежде с Flex. –

+0

Не удалось разрешить к реализации компонента. Просто замените его на (дополнительное подчеркивание), и ошибка исчезнет. – reidLinden

ответ

1

Обычно такие ошибки означают, что у вас есть два компонента с именем аналогично, и компилятор не может определить, какой из них вы хотите использовать.

У вас есть другой компонент с одинаковым, даже в другой упаковке? Или у вас есть переменная в вашем компоненте с тем же именем, что и компонент? Обязательно проверьте свои SWC и/или проекты библиотеки.

Я предполагаю, что это ошибка времени компиляции; это верно?

+0

Да, это ошибка времени компиляции. Насколько я могу судить, нет других компонентов с этим именем. Пространство имен является достаточно новым (как и весь проект). Хм .. Подождите, это заставляет меня задуматься. Я впервые получил эту ошибку после удаления всего скрипта из OrderEntryView_2_Cart.mxml и размещения его в файл OrderEntryView_2_Cart.as, который затем отправляется в файл mxml. Одна вещь, которую я еще не пробовал, изменяет имя THAT-файла. Я не думал об изменении этого файла, потому что его просто AS-файл ... не класс или что-то еще. Никогда даже не передумал, что это может привести к конфликту – reidLinden

+1

ну, я буду .... это была проблема. Я переименовал файл ActionScript, переделал и Voile! Я в порядке! Спасибо за вопрос, который указал мне в правильном направлении! – reidLinden

+0

Однако я не понимаю, почему компилятор подбирает файл ActionScript и рассматривает его как компонент? Там нет декларации класса. – reidLinden

3

Попробуйте следующее:

  • Щелкните правой кнопкой мыши на вашем проекте в проводнике пакета.
  • Выберите «Свойства» во всплывающем меню (последний элемент).
  • Нажмите «Путь сборки библиотеки Flex»
  • Нажмите кнопку «Классы» Вкладка

Попробуйте найти имя вашего нового компонента там. Если да, проверьте, проверено ли оно или нет. Если это не так, проверьте его. Это должно решить проблему прямо там, но вам, возможно, придется очистить и (иногда) выйти из FB4 и перезапустить.

+0

Боюсь, что я этого не вижу. В flashbuilder 4 я получаю «свойства» ... и после этого наши пути расходятся, нет «пути сборки библиотеки Flex» Однако у меня есть «путь сборки Flex», но при нажатии на него не появляется " Классы ", и быстро просматривая один, я не мог его найти. – reidLinden

+0

Поиск «классов» в маленьком диалоговом окне поиска также ничего не вызывает. – reidLinden

+0

Оригинальный плакат относится к проекту Flex Library. Диалог предназначен для указания файла, который должен быть скомпилирован в SWC. Не было бы «списка классов» для проекта Flex; так как при создании SWF вы хотите поместить туда все файлы. – JeffryHouser

0

Возможно, я очень поздно ответить на этот вопрос, но это может быть потому, что имя пакета, которое ассоциируется с вашим классом, не является точным и уместным.

1

В моем случае проблема была решена путем изменения SDK версии из Flex Compiler до 4,5

Вы можете попробовать с разными версиями SDK, пока вы не получите ваш компонент не для компиляции или до изменения ошибки к чему-то, связанному с темой, связанной с ошибкой.

После Changin этого я получил ошибку, связанную с СВОЙСТВ, который не поддерживается текущей темой, поэтому я открываю компонент в зрения дизайна и в Properties View выбрана вкладка Внешний вид и изменен тема из SPARK в HALO

Надежда это полезно для кого-то еще

0

Одной из причин этой ошибки является то, что XML-пространство имен по умолчанию для компоненте не такой же, как в упаковке, в которой с omponent проживает.

Проверьте, чтобы стандартная запись xmlns в определении компонента была такой же, как и пакет.

Например:

Если у вас есть компонент MyControl.mxml, расположенный в пакете com.company.components.controls

MXML открывающем теге может выглядеть примерно так:

<MyControl xmlns:mx="http://www.adobe.com/2006/mxml" 
      xmlns:util="com.company.components.util.*" 
      xmlns:components="com.company.components.*" 
      xmlns="com.company.components.controls.*"> 

Обратите внимание, что запись по умолчанию xmlns указывает на тот же пакет.


Почему это происходит:

Часто случается, что после рефакторинга класс MXML, перемещая его на новый пакет, который вы будете в конечном итоге с действительным на но не правильное определение MXML.

Например сказать, я рефакторинг и переместить MyControl.mxml из com.company.components пакет к com.company.components.controls пакета. Определения Xmlns не будет обновляться, так что они будут выглядеть следующим образом:

<controls:MyControl xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:util="com.company.components.util.*" 
        xmlns="com.company.components.*" 
        xmlns:controls="com.company.components.controls.*"> 

Обратите внимание, как пространство имен по умолчанию по-прежнему указывает на пакет com.company.components и MXML тег MyControl должен предваряться пространство имен элементов управления Это указание на проблему.

Теперь вот улов; Это технически обоснованно и часто будет работать. Причина в том, что она действительна и все компоненты могут быть найдены в их определенных местах xmlns.

Проблема возникает, когда вы пытаетесь использовать компонент, который, как ожидается, будет найден фреймворком или родительским компонентом в пространстве имен по умолчанию. Хорошим примером этого является и другие подкомпоненты родительского компонента mxml, который вы можете расширить.

Чтобы исправить это, вы должны изменить тег mxml и пространства имен, чтобы пространство имен по умолчанию было таким же, как текущий пакет. (Как в первом примере)

Смежные вопросы