当前位置: 首页 > 知识库问答 >
问题:

基于Android Gradle多味库的多味应用

宫子晋
2023-03-14

我的应用程序有几种不同的口味,适用于几个市场的应用内计费系统

问题是android库能有产品风味吗?

如果是的话,我如何在应用程序的不同口味中包含不同的口味?

我找了很多,但我没有找到任何关于这个场景的东西。我在http://tools.android.com/tech-docs/new-build-system/user-guide中找到的唯一接近的内容是:

dependencies {
    flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
    flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}

我改变了配置到不同的东西,但它没有工作!

我使用的是android Studio0.8.2。

共有1个答案

咸星波
2023-03-14

最后我发现了如何做到这一点,我将在这里解释给其他面临同样问题的人:

关键部分是在library Build.Gradle中将publishNonDefault设置为true,然后您必须按照用户指南的建议定义依赖项。

整个项目将是这样的:

apply plugin: 'com.android.library'

android {        
    ....
    publishNonDefault true
    productFlavors {
        market1 {}
        market2 {}
    }
}
apply plugin: 'com.android.application'

android {
    ....
    productFlavors {
        market1 {}
        market2 {}
    }
}

dependencies {
    ....
    market1Compile project(path: ':lib', configuration: 'market1Release')
    market2Compile project(path: ':lib', configuration: 'market2Release')
}

现在,您可以选择app flavor and Build Variants面板,库将相应地被选择,所有的构建和运行都将基于所选的flavor完成。

如果你有多个app模块基于库Android Studio会抱怨变体选择冲突,没关系,忽略它就好了。

 类似资料:
  • 我正在开发一款多味。(下面是gradle文件) 它使用一个名为的库,遵循相同的风格和 现在,对于棘手的部分,有一个名为的新模块,这个模块没有味道,但它需要作为依赖项 app.gradle: 追踪器。格拉德尔: 特色格拉德尔: 以下是我尝试渐变同步时出现的:

  • 问题内容: 任何人都可以向我解释,除了主要的和特定于风味的java / src目录之外,我如何能更多地用于每种风味?我的目标是拥有不只一种口味但并非全部使用的目录。 例如,我有3种口味:A1,A2和B。 所有忙都使用main / src(默认的主src目录) A1使用A1 / src(默认的src目录) A2使用A2 / src(默认的src目录) B使用B / src(默认的src目录) A1和

  • 我想在我的Azure web应用程序中使用use tedious来遵循本教程https://docs.microsoft.com/en-us/Azure/sql-database/sql-database-connect-query-nodejs我在require('tedious').connection中得到错误“uncated error:Module name”tedious“nas no

  • 有人能解释一下与HTTP/2相关的多路复用以及它是如何工作的吗?

  • 我正在使用Android Studio 1.0.1 我试图使用具有相同名称(和相同的入口点,只是内部代码不同)的特定于味道的JNI库。 我得到了两种风格的“full”和“lite”,目前仍然指向相同的jni库“my lib.so”。 我有以下项目树: 我想为每种口味都有一个不同的“my-lib.so”库。口味之间的所有变化都是库内部的。 我试着做一些像这样的事情: 但这会引发以下错误消息: 错误:

  • 看着新的Azure cosmos数据库,我对它的多模型特性有点困惑。具体而言,这是否意味着: a)相同的底层数据库/存储可以以多种方式并发查询,以便我可以对相同的集合使用gremlin图查询和mongodb api。 或 b)这是否意味着您可以在预配Cosmos DB时选择不同的模型(图、键值、列、文档),这就是从那时起存储数据的方式。 小册子让它听起来像a),但使用Azure仪表板创建cosmo