#android #android-studio #templates
#Android #android-studio #шаблоны
Вопрос:
Я попытался создать шаблон Android Studio, подобный шаблону activity, с помощью этой инструкции
Текущий набор пакетов в globals.xml.ftl
<global id="srcOut" value="${srcDir}/${slashedPackageName(packageName)}" />
и создайте файл шаблона
<instantiate from="src/app_package/LifecycleFragment.java.ftl"
to="${escapeXmlAttribute(srcOut)}/${className}.java" />
Это приводит к тому, что мой файл шаблона преобразуется в src / main / java /myPackageName
Но мой текущий пакет — kotlin
Как я могу создать шаблон в текущей выбранной папке?
Комментарии:
1. вы нашли ответ?
2. У меня такие же проблемы. В каталог также добавлен постфикс flavours.
Ответ №1:
Извините, если я опоздал со своим ответом, но, возможно, это будет кому-то полезно.
Чтобы изменить исходный пакет с java на kotlin, попробуйте добавить эту строку в globals.xml.ftl:
<global id="kotlinMainSourceSet" value="${srcOut?replace('java','kotlin') />
Используйте его в вашем файле receipt.xml.ftl следующим образом:
! Замените SomeClass.kt.ftl своим классом в app_package;
! Замените your_needed_path на путь, в который вы хотели бы поместить файл
! Замените someClassName идентификатором className из шаблона.
<instantiate
from="src/app_package/SomeClass.kt.ftl"
to="${escapeXmlAttribute(kotlinMainSourceSet)}/${your_needed_path}/${someClassName}.kt" />
Кроме того, я отвечу на вопрос @AlexeiKorshun, с которым я тоже сталкивался: при создании каталога добавляется applicationIdSuffix. Это можно легко исправить, переопределив srcOut в вашем globals.kt.ftl следующим образом:
<global id="srcOut" value="${srcDir}/${slashedPackageName(packageName?replace('.dev|.qa2|.stage', '', 'r'))}" />
В качестве примера добавлены файлы .dev /.qa2 /.stage, пожалуйста, замените их своими.