问题标签 [android-productflavors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
263 浏览

android - 执行所需变体时,如何在 gradle 中设置 ExtraPropertiesExtension?

我将 ext.myVariable 设置为

在这个片段中。

当我运行 assembleFlavor1 时,我希望 myVariable 为“一个”。但结果却是“二”。当我像这样改变口味的顺序时

结果它变成了“一”。

建议?

提前致谢。

0 投票
3 回答
11278 浏览

android - Android 风格 - 在 R 文件中找不到符号变量

我有 2 种口味 - 付费应用和免费应用。支付应用程序的唯一区别是多了 1 个MainActivity按钮"paidbutton"。paidapp 有自己的带有按钮的android:id="@+id/paidbutton"布局,而 freeapp 的布局没有这个按钮。

在代码中我使用这个:

cannot find symbol variable但我有一个错误findViewById(R.id.paidbutton);

如何在不克隆两种风格的 MainActivity.java 的情况下解决这个问题?

EDIT1 - 添加更多代码示例:

摇篮:

/app/src/main/res/layout/activity_main.xml

/app/src/paidapp/res/layout/activity_main.xml

/app/src/main/java/company/com/myapplication/MainActivity.java

EDIT2 - 我找到了一些使用反射的解决方法,但仍在寻找正常的解决方案:

而不是View paidbutton = findViewById(R.id.paidbutton);我用过View paidbutton = findViewById(getIdFromRId("paidbutton"));

哪里getIdFromRId是:

0 投票
0 回答
1851 浏览

java - Android Content Provider 和 Gradle productFlavors

我的应用程序应该有 2 种风格:免费和付费。两个版本分别完美运行。但是当我想一次安装 2 个时,我得到了错误:[INSTALL_FAILED_CONFLICTING_PROVIDER]。我试图将 android:authorities 和 buildConfigField 值更改为完全不同,但它不会改变任何东西 - 应用程序不会安装。此外,我还删除了主要 Android 清单中的提供程序声明 - 没有。请帮我。

我的文件夹结构:

我的毕业文件:

我的内容提供商:

我的免费 Android 清单:

我的高级 Android 清单:

0 投票
0 回答
784 浏览

android - 每个 buildType / productFlavor 组合的 BuildConfig 属性

我有一个应用程序的免费和付费版本。我需要在 BuildConfig 上使用 gradle 配置一个道具,该道具对于每个 buildType / productFlavor 组合都不同。

  • 免费调试-> prop1=value1
  • 免费发布 -> prop1=value2
  • 付费调试-> prop1=value3
  • 付费发布 -> prop1=value4

我的构建类型是调试/发布,我的产品风格是免费/付费的

你能帮我解决这个问题吗?

0 投票
1 回答
76 浏览

android - Gradle 多个安卓应用

我想在 gradle 的帮助下构建 2-3 个不同的 APK,其中应用名称发生变化和一些代码行。我不想更改整个目录或整个文件,只更改代码片段,这可能吗?我试图了解Build variant 和 Product flavor。但无法弄清楚它是如何工作的。还有这个教程

谢谢

0 投票
0 回答
246 浏览

android - 使用 Gradle 在 Android Studio 中集中 src/main 目录?

我想在我的项目中引入 src 目录main作为库或依赖项。

使用 Android Studio/Gradle Flavor 设置,可以使用多种风格设置多应用程序:

main 携带项目中所有风味的基础代码。

我想将我的主要代码集中在多个项目中

我设想的一种方法是 通过git-clone-taskgradle-git引入目录

但这会将范围仅限于我的团队。

在使用 Gradle 在 Android Studio 项目中集中检索和放置 src 目录的背后是否有一种方法或理解,然后我可以在没有 git-clone 方式所需的所有 ssh/auth 内容的情况下公开项目。

我真的很想引入目录,例如....

这个用例有哪些选择?

0 投票
1 回答
76 浏览

android - Android 风格及其工作原理

我需要澄清这一点。假设我有一个主文件夹,它有自己的源目录和资源目录。我也有 Flavour1 和 Flavour2,它们都有自己的源和资源目录。如果我在主资源文件夹中有一个名为 banner.png 的图像。

如果该风味在其自己的资源目录中具有该映像,那么当我运行 build Variant Flavour1 时该映像是否会被替换。

或者我应该建立我的项目,以便横幅位于 Flavour1 和 Flavour2 中,但不在主资源文件夹中?

我已阅读:http ://tools.android.com/tech-docs/new-build-system/user-guide这很有帮助。但是由于我的 Flavor 设置不能正常工作,所以我错过了一些东西。

0 投票
1 回答
1434 浏览

android - Android Studio / Gradle - Flavor 特定 Jni 库的配置

我正在使用 Android Studio 1.0.1 和 Gradle 1.0.0。

我正在尝试使用具有相同名称的特定于风味的 JNI 库(以及相同的入口点,只有内部代码不同)。

我有两种口味“full”和“lite”,目前仍然指向同一个 jni lib“my-lib.so”。

我有以下项目树:

我想为每种口味使用不同的“my-lib.so”库。口味之间的所有变化都是图书馆内部的。

我试图做类似的事情:

但这会引发以下错误消息:

错误:APK %path%\app\build\outputs\apk\app-lite-debug-unaligned.apk 打包过程中文件重复 存档路径:lib/armeabi-v7a/my-lib.so 来源 1:%path% \app\src\main\jniLibs\armeabi-v7a\my-lib.so 来源 2:%path%\app\src\lite\jniLibs\armeabi-v7a\my-lib.so

我得到了以下 Gradle 构建:

}

Gradle 可以做这种事情吗?我错过了什么重要的东西吗?谢谢你的帮助 :-)

0 投票
1 回答
142 浏览

android - Android,风味,风味,风味和风味

所以你可以从标题中看到我有重复的问题。

您不能在您的风味和主目录中定义相同的文件。但是您可以使用 xml 资源执行此操作。

那么它是如何工作的呢?例如,我的构建变体是RedStagingDebug,并且我在 3 个文件夹中定义了main_menu_layout.xml

  • 主/res/layout/main_menu.xml
  • 红色/res/layout/main_menu.xml
  • 调试/res/layout/main_menu.xml

我的构建中将使用哪个文件,为什么?

0 投票
2 回答
5900 浏览

android - 改变变体中的 resValue

我有两种产品风格和三种构建类型。

有没有一种方法可以改变 content_provider_authority 的 resValue ,而不是基于产品风味,而是基于变体?我希望新产品风格的所有构建都使用应用程序 id +“.contentprovider”,但对于我们的旧产品风格,如果调试或发布,则使用硬编码字符串,如上所示,但增强它以使用不同的硬编码字符串进行 qa 构建类型。