Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从单个源项目构建多个APK_Android_Gradle - Fatal编程技术网

Android 如何从单个源项目构建多个APK

Android 如何从单个源项目构建多个APK,android,gradle,Android,Gradle,我想从一个源项目中获得多个APK。 只是应用程序的标题、图标和包名与其他应用程序不同 该项目位于gradle(1.12),如下所示 . └── my_project ├── build.gradle ├── settings.gradle └── module ├── build.gradle └── src 我怎样才能做到这一点?您可以使用,例如,在promo和完整文件夹下,使用更新标题值创建字符串文件(promo/res/values

我想从一个源项目中获得多个APK。 只是应用程序的标题、图标和包名与其他应用程序不同

该项目位于gradle(1.12),如下所示

.
└── my_project
    ├── build.gradle
    ├── settings.gradle
    └── module
        ├── build.gradle
        └── src
我怎样才能做到这一点?

您可以使用,例如,在promo和完整文件夹下,使用更新标题值创建字符串文件(promo/res/values/strings.xml),同样的方法用于图标

productFlavors {

    promo {
        packageName "com.woony.promo"
        versionCode 1
        versionName "v1.0.0_promo"
    }

    full {
        packageName "com.woony"
        versionCode 1
        versionName "v1.0.0"
    }

}
更新后的项目结构应如下所示

.
└── my_project
    ├── build.gradle
    ├── settings.gradle
    └── module
        ├── build.gradle
        └── src
            ├── main
            ├── promo
            └── full
要生成发布APK,只需调用以下代码一次(确保在发布BuildType中添加并链接了它)

  • 所有常见文件,如java代码、清单和基本资源,都在“src/main”下
  • 将特定于应用程序的文件夹移动到“src/projects”中
  • 声明两个productFlavor(每个应用程序一个),指定applicationIdversionName
  • 创建两个sourceSet(每个项目一个),指示特定的res、java等。。文件夹(我只需要res文件夹)

整个项目的结构

现在,使用构建变体(Android Studio左下角)选择要运行的应用程序


看看味道,就像这张图坦卡蒙一样
gradle assembleRelease