Я никогда раньше не работал с плагинами. Я думал, что, создав новый класс внутри фрагмента и экспортируя пакет, содержащий его в манифесте фрагмента, я смог бы получить доступ к этому классу из другого подключаемого модуля, который уже имеет зависимость от подключаемого модуля хоста. Однако я не могу сделать эту работу. Является ли содержимое фрагмента когда-либо видимым для любого подключаемого модуля, помимо подключаемого модуля хоста? Если да, есть ли что-то особенное, что я должен сделать, чтобы это разрешить?Являются ли содержимое фрагмента видимым вне хост-модуля?
ответ
Проблема не в том, что содержимое фрагмента не видно другому плагину: они - просто попробуйте загрузить, например. файл свойств из пути к классам, он по-прежнему работает, если этот файл свойств предоставляется фрагментом.
Но у вас нет информации о времени фрагментации фрагмента. Это принцип фрагмента: у вас нет зависимости от него. И вы не знаете, если у кого-то есть фрагменты, установленные или нет.
Это также не только проблема, которая имеет только «любой плагин, помимо подключаемого модуля». Это проблема, что даже сам хост-плагин. Он не знает о существовании фрагмента во время компиляции.
Вы также не можете надежно использовать фрагмент для переопределения частей классов подключаемого модуля хоста: FAQ Can fragments be used to patch a plug-in?, если это то, что вы хотите сделать. На странице также описывается, как это можно сделать.
Надеюсь, это поможет.
Большое спасибо. Теперь все это имеет смысл для меня сейчас, когда это изложено - я должен был понять, что даже плагин хоста не может использовать какую-либо информацию о своих фрагментах во время компиляции. Мне изначально интересовались фрагменты, потому что я хотел включить в них тестовый код. Невозможность доступа к тестовому коду, находящемуся за пределами фрагмента, на самом деле является хорошим преимуществом. –