Вот проблема:
В вашей программе может быть только одна копия устройства. Если вы попытаетесь загрузить один и тот же модуль дважды с помощью пакетов, это вызовет исключение, и пакет не загрузится во второй раз. Чтобы избежать этого, нужно структурировать ваши пакеты так, чтобы ни один из них не использовался более чем в одном из них.
Код для каждого скомпилированного модуля должен быть в пакете. Компилятор запустится со всеми модулями, которые вы объявите в разделе , содержит , но любые другие модули, используемые этими модулями, также должны быть скомпилированы, так что они будут доступны, если только эти блоки не содержатся в другом пакете, который перечислено под требует . Эти дополнения являются «неявно импортированными» единицами. Проблема в том, что они импортированы неявно , явно не указано в разделе содержит , где они будут удобно отображаться в менеджере проектов справа. Это означает, что вы можете не заметить, что ваше устройство находится в пакете, и в конечном итоге положить его в другой. Затем, когда вы пытаетесь запустить вашу программу и загрузить пакеты, все обрывается. Вот почему компилятор предупреждает вас об этом.
Это предупреждение, а не ошибка по причине. Пока вы понимаете, как работает система, технически безопасно использовать неявный импорт. Просто помните, что эти единицы оказываются в пакете, объявляете ли вы их или нет. Но опять же, поскольку они заканчиваются там, независимо от того, объявляете ли вы их или нет, вероятно, проще просто официально добавить их и избавить себя от хлопот.