Имя пакета шаблонов Android Studio

#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, пожалуйста, замените их своими.