问题 如何在Android Studio中创建自定义项目模板


我可以在Android Studio中创建自定义项目模板吗?

我找到了目录“Android Studio.app/sdk/tools/templates/projects/NewAndroidApplication”并编辑了一下。 但它现在正在发挥作用。

你有什么主意吗 ?

我想从像Xcode这样的模板创建项目。


10510
2017-07-03 06:32


起源

特殊的谷歌魔术=> [Android Studio中的自定义项目](i-programmer.info/projects/215-mobile/...) - 0wl
我可以使用自定义活动模板。但是,我想使用项目模板。有人知道吗? - sekitaka


答案:


我想出来了 这个好博客,它为您提供了有关在android studio中创建文件模板的完整教程,并解释了模板代码的语法。

如果您希望模板在使用时构建多个文件和包,(就像片段和活动作为默认模板一样),我建议您访问 这个帖子 因为它提供了关于这个主题的完整步行。


6
2018-01-09 14:38





没有上一个。答案对我有用。 这是我发现的: 密钥文件是

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl

重要的是它在 NewAndroidModule,而不是NewAndroidProject

这是我的文件的样子:

<#if !(perModuleRepositories??) || perModuleRepositories>
buildscript {
    repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:${gradlePluginVersion}'
    }
}
</#if>
<#if isLibraryProject?? && isLibraryProject>
apply plugin: 'com.android.library'
<#else>
apply plugin: 'com.android.application'
</#if>
<#if !(perModuleRepositories??) || perModuleRepositories>

repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
}
</#if>

android {
    compileSdkVersion <#if buildApiString?matches("^\\d+$")>${buildApiString}<#else>'${buildApiString}'</#if>
    buildToolsVersion "${buildToolsVersion}"

    defaultConfig {
    <#if isLibraryProject?? && isLibraryProject>
    <#else>
    applicationId "${packageName}"
    </#if>
        minSdkVersion <#if minApi?matches("^\\d+$")>${minApi}<#else>'${minApi}'</#if>
        targetSdkVersion <#if targetApiString?matches("^\\d+$")>${targetApiString}<#else>'${targetApiString}'</#if>
        versionCode 1
        versionName "1.0"
    }
<#if javaVersion?? && (javaVersion != "1.6" && buildApi lt 21 || javaVersion != "1.7")>

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
        targetCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
    }
</#if>
<#if enableProGuard>
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
</#if>
}

dependencies {
    <#if dependencyList?? >
    <#list dependencyList as dependency>
    compile '${dependency}'
    </#list>
    </#if>
    compile fileTree(dir: 'libs', include: ['*.jar'])
<#if WearprojectName?has_content && NumberOfEnabledFormFactors?has_content && NumberOfEnabledFormFactors gt 1 && Wearincluded>
    wearApp project(':${WearprojectName}')
    compile 'com.google.android.gms:play-services:+'
</#if>
<#if unitTestsSupported>
    testCompile 'junit:junit:${junitVersion}'
</#if>

//from C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
//logback
//    compile 'MyAwesomeDependency:1.1.+' 
//    compile 'MyOtherAwesomeDependency:1.1.+'
//    compile 'org.slf4j:slf4j-api:1.7.+'  
//end logback
//    compile 'com.google.code.gson:gson:2.+'

}

这是模块应用程序的正确输出build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.ntier.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

//from C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
//logback
//    compile 'MyAwesomeDependency:1.1.+' 
//    compile 'MyOtherAwesomeDependency:1.1.+'
//    compile 'org.slf4j:slf4j-api:1.7.+' 
//end logback
//    compile 'com.google.code.gson:gson:2.+'

    compile 'com.android.support:appcompat-v7:23.4.0'
}

所以,最后,在build.gradle生成之后,我相应地取消注释。

这花了我一整天才搞清楚。我对Gradle doc'n和Android Studio Doc'n非常不满。这应该是一个简单的任务w /快速简单的doc'n。事实上,我仍然不太了解gradle confign。 : - {

上面的目录序列适用于我安装的Android Studio。您的Android Studio可能已安装在其他位置,但此答案仍然相关。


5
2018-06-02 23:08



它在当前的android工作室上的macos上工作吗?我找不到NewAndroidModule。 - tse
我不知道。我不知道“macos”是什么。 - JDOaktown


可能会迟到回答,但请检查您的android SDK文件夹下的此文件夹。

android-sdk\tools\templates\projects

这是存储现有新项目模板的地方。

我已经发布了详细的解答 这个帖子


1
2018-02-04 12:22



如何在Android Studio中创建一个项目模板,其中包含两个或更多模块。 - OMAK


编辑“gradle-projects / NewAndroidModule”。有用。


0
2017-07-15 06:57



“app”是Android模块之一? - sekitaka