android - Android Studio 模板包名
问题描述
我尝试通过此指令制作 android studio 模板,如活动模板
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
如何在当前选定的文件夹中创建模板?
解决方案
抱歉,如果我的答案迟到了,但也许它对某人有用。
要将源包从 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 的 id。
<instantiate
from="src/app_package/SomeClass.kt.ftl"
to="${escapeXmlAttribute(kotlinMainSourceSet)}/${your_needed_path}/${someClassName}.kt" />
此外,我将回答我也遇到过的@AlexeiKorshun 问题:添加了 applicationIdSuffix,同时创建了一个目录。这可以通过覆盖 globals.kt.ftl 中的 srcOut 来轻松解决,如下所示:
<global id="srcOut" value="${srcDir}/${slashedPackageName(packageName?replace('.dev|.qa2|.stage', '', 'r'))}" />
.dev/.qa2/.stage 作为示例添加,请替换为您的。
推荐阅读
- linq - Linq 多个连接到 SelectList
- python - 使用 chaquopy 在 android studio 中集成 python 代码(对象检测代码)
- asp.net-core-mvc - 模型验证不适用于单一视图中的多个模型 | 在 Asp.Net Core MVC 中
- javascript - fetch() 在扩展程序中有效,但在 Chrome 控制台/片段中失败
- html - Flutter 图像溢出
- functional-programming - Isabelle 标记图定义
- mockito - 使用 mockito 测试 spring mvc 的模型属性
- python - Python 的无效 SQLite URL (SQLAlchemy)
- r - 如何将 rmarkdown 文件输出到我选择的文件夹中?
- python - 如何计算excel文件中所有行的z分数?