首页 > 解决方案 > 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

如何在当前选定的文件夹中创建模板?

标签: androidandroid-studiotemplates

解决方案


抱歉,如果我的答案迟到了,但也许它对某人有用。

要将源包从 java 更改为 kotlin,请尝试将此行添加到 globals.xml.ftl:

<global id="kotlinMainSourceSet" value="${srcOut?replace('java','kotlin') />

在您的receipt.xml.ftl 中使用它,如下所示:

!将 SomeClass.kt.ftl 替换为 app_package 中的类;

!将 your_needed_pa​​th 替换为您要放置文件的路径

!将 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 作为示例添加,请替换为您的。


推荐阅读