相关疑难解决方法(0)

如何在Android Studio中运行不同的产品口味

我正在编写我的第一个Android应用程序,而我只是开始使用产品风味.我有一个广告支持的应用程序测试版,我正在编写一个没有广告的付费版本.我想,我可以编译这两种口味.当我打开gradle窗口时,我会看到像"编译AdsDebugSources"和"编译PremiumDebugSources"这样的目标.

现在,如果我双击其中任何一个,构建运行完成没有错误,但我无法弄清楚如何运行结果.如果我点击屏幕顶部的绿色"运行"箭头,我就永远无法运行高级应用.

只有一个条目,"app"导致在连接的设备上安装并运行apk,它是AdsDebug版本.我想我需要添加一个新配置,但我找不到任何甚至提到"味道"这个词的文档.

我已经尝试添加配置,但我不明白这些问题是什么意思.我查看了默认应用程序的设置,但它们似乎没有多大意义.我如何告诉它我想要我的应用程序的高级版本?

或者我的问题与配置无关?我注意到,当我看到Build/Edit Flavors列出的两种风格,但没有填写任何数据字段.我会认为这些将从清单中复制.我忽略了什么吗?

我所做的就是将这些代码添加到app level build.gradle文件:

flavorDimensions "dummy"

productFlavors {
    ads {
        dimension "dummy"
        applicationId 'com.example.myApp.ads'
    }

    premium {
        dimension "dummy"
        applicationId 'com.example.myApp.premium'
    }
Run Code Online (Sandbox Code Playgroud)

}

我还需要做什么?

android

22
推荐指数
1
解决办法
7347
查看次数

根据构建风格引用不同的资产

我能够得到正确api_key.txtdebug构建,因为那是一个buildType. 但是,我无法将其与 productFlavor 一起使用amazon

我已经尝试在我的build.gradle编译文件中执行此操作,但它实际上不会在运行时引用正确的文件:

sourceSets {
amazon {
  assets.srcDirs = ['app/src/amazon/assets']
}
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构:

文件夹结构

当我的产品风味是 时,如何api_key.txtamazon/assets文件夹中引用amazon

非常感谢所有帮助,谢谢。

android android-gradle-plugin

7
推荐指数
1
解决办法
4254
查看次数

如何在库模块中为调试和发布使用不同的包名称?

简短的问题

如何更改调试发布的包名称库模块中

语境

在具有 MVP + Clean 架构的 Android 项目中,我们在库模块中拥有存储库模式。我们希望在具有两个环境(开发和生产)的库中包含 Firebase。

com.example.com我已经在 Firebase (和)中创建了项目com.example.com.dev,然后下载了相应的google-services.json到 src/main 和 src/debug 文件夹。

Gradle google-services插件使用google-services.json中定义的客户端 ID 验证模块包名称,但 Android 限制在库中更改applicationId(我找不到技术原因)

我尝试过的事情

  • 有两个具有不同包属性的 AndroidManifest.xml。com.example.com在 src/main 和com.example.com.devsrc/debug/ 中,但第二个它被忽略
  • manifest.srcFile在 Gradle sourceSets 中设置。当我运行时,该文件位于列表中./gradlew sourceSets,但包名称没有改变
  • 库模块中有两种不同的风格,并为每一种设置不同的清单。无论如何,包裹不会改变。

目前我只有两个合适的解决方案: 1. 将 Firebase 设置和实现保留在存储库外部的应用程序模块中。2. Firebase 只有一个环境。

非常感谢您的任何帮助或建议。

编辑

考虑到我需要修改模块(库)中的包,而不是应用程序中的包。由于某些奇怪的原因,当我尝试在模块中使用applicationIdSuffixor时,Gradle 显示此错误:applicationId

错误:库项目无法设置 applicationIdSuffix。

android gradle firebase

5
推荐指数
1
解决办法
3689
查看次数

标签 统计

android ×3

android-gradle-plugin ×1

firebase ×1

gradle ×1