Не удалось разрешить * для реализации компонента - PullRequest
3 голосов
/ 30 июня 2010

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

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

Итак, чтобы решить эту проблему, я попробовал две вещи, и обе работают, насколько они забирают меня. Сначала я добавил новый компонент точно такого же типа, а затем скопировал в него содержимое компонента, вызывающего ошибки. Я заменяю viewstack 'page' новым компонентом (который, насколько я могу судить, является IDENTICAL, но с другим именем), и ошибка компилятора исчезает.

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

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

Мне бы очень хотелось понять, что я здесь не так сделал. Чего мне не хватает?

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

Ответы [ 5 ]

3 голосов
/ 30 июня 2010

Попробуйте выполнить следующее:

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

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

1 голос
/ 25 марта 2014

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

Проверьте, чтобы убедиться, что запись 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 должен начинаться с префикса пространства имен controls это признак проблемы.

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

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

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

1 голос
/ 06 августа 2013

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

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

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

Hopeэто полезно для кого-то другого

1 голос
/ 01 июля 2010

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

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

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

0 голосов
/ 20 июня 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...