问题标签 [android-flavors]
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.
java - 如何在 Android 中使用 Flavors 更改应用程序颜色
在我的应用程序中,我有2 种口味,我想res/color
为每种口味更改应用程序的颜色 () !
请在下面的build.gradle
文件中查看我的代码:
我不知道如何color.xml
为每种口味设置!
这怎么可能?
android - Flutter 风格不适合 iOS
好日子,
在构建到 android 时,我对使用风味没有任何问题。
这不是 iOS 的情况,我收到以下错误:
完成错误:异常:源目录“/Users/[HOME]/[PROJECT]/build/ios/Release-iphonesimulator/Runner.app”不存在,没有可复制的
请看颤振医生-v:
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.15.4 19E266, locale en-ZA) • Flutter 版本 1.12.13+hotfix.9 在 /Users/[HOME]/flutter •框架修订 f139b11009(4 天前),2020-03-30 13:57:30 -0700 • 引擎修订 af51afceb8 • Dart 版本 2.7.2
[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.3) • Android SDK 位于 /Users/[HOME]/Library/Android/sdk • Android NDK 位置未配置(可选;对原生分析支持有用) •平台 android-29,构建工具 29.0.3 • ANDROID_HOME = /Users/[HOME]/Library/Android/sdk • ANDROID_SDK_ROOT = /Users/[HOME]/Library/Android/sdk • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java 版本 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586-b4-5784211) • 接受所有 Android 许可证。
[✓] Xcode - 为 iOS 和 macOS 开发 (Xcode 11.4) • Xcode 在 /Applications/Xcode.app/Contents/Developer • Xcode 11.4,构建版本 11E146 • CocoaPods 版本 1.9.1
[✓] Android Studio(版本 3.6) • Android Studio 位于 /Applications/Android Studio.app/Contents • Flutter 插件版本 44.0.2 • Dart 插件版本 192.7761 • Java 版本 OpenJDK 运行时环境(内部版本 1.8.0_212-release-1586- b4-5784211)
[✓] 连接设备(2 个可用) • 为 x86 构建的 Android SDK • emulator-5554 • android-x86 • Android 5.1.1 (API 22)(模拟器) • iPhone 11 Pro Max • 96D35F20-F138-40BA-BC95-0DF38DFCA21E • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-4(模拟器)
• 未发现任何问题!
android - 为什么两个以上的 android 风格维度不能正常工作?
这是一个问题,例如,我的应用需要接下来的三个维度:“品牌”、“环境”、“市场”。配置将如下所示:
结果,我可以构建接下来的 8 个应用程序(在此示例中我忽略了构建类型):
据我了解有关风味维度的文档(https://developer.android.com/studio/build/build-variants#flavor-dimensions),应用程序 nikeTestGoogle 使用下一个文件夹中的文件:main、nike、test、google、nikeTest、耐克测试谷歌。但它不起作用,Android Studio 只能看到 main、nike、test、google 和 nikeTestGoogle 中的文件。nikeTest 中的文件被忽略,甚至没有标记为当前活动。
有谁知道为什么会这样?
android - 有没有办法组合来自不同维度的数据?
我制作了 4 种不同风格的同一个应用程序,并将它们全部作为免费应用程序发布在 Play Store 上。
现在我正在为它们中的每一个制作付费版本,为了实现这一目标,我创建了 2 种新风格:免费和付费,这些风格与 4 个应用程序之一具有不同的维度。4 个应用程序具有“版本”维度,免费/付费口味具有“模式”维度。
我试图弄清楚如何为每个版本/模式对设置不同的版本代码和名称,例如: flavorAFree -> versionCode 1 / flavorAPaid -> versionCode 2
这是我的代码:
我试图实现的一个例子(不完全是这些值):
当我尝试同步我的 Gradle 脚本时,我收到以下错误:
配置项目 ':app' 时出现问题。风味“flavourA”没有风味维度。
有没有办法做我想做的事?
java - Android中的产品风味内部风味
我无法让产品风味发挥作用。我想在风味中实现风味,例如,我有 2 个应用程序,我已经这样声明了它,
现在我想通过使用风味来“定义”开发和产品,那么我该如何实现呢?可能吗 ?我想实现这个,
android - 无法在 Flutter 中构建具有多种风格的发布 apk?
我正在使用 Flutter(1.17.4 版)开发 Android 并配置multi Flavors
运行多环境。
我的源代码有 3 个环境:(dev
开发)、uat
(QC)、prod
(生产)。
Source
: https://github.com/huubao2309/demo_multi_flavors
我的multiFlavors.gradle
文件(/android/app/multiFlavors.gradle
):
每次,我都会构建应用程序以使用终端发布:
文件 .apk 已创建,但终端抛出异常:
Gradle build failed to produce an .apk file. It's likely that this file was generated under D:\demo_multi_flavors\build, but the tool couldn't find it.
我在模式下运行时也遇到了这个问题debug
,但是在Android Studio(4.0版)上,我添加了 config build flavor
,问题得到解决:
如何解决发布模式的问题?
android - 使用风格时出现错误无法实例化活动,并且启动器活动在两种风格中都有不同的代码
出现错误 使用风味时无法实例化活动,并且启动器活动在两种风味中具有不同的代码。
MainActivity 是启动器活动。它包含两种风格的不同代码。
项目结构
--风味1
--> AndroidManifest.xml(包含仅在此风格中使用的活动)
--> 爪哇
----> MainActivity.java(此风味的具体代码)
--风味2
--> AndroidManifest.xml(包含仅在此风格中使用的活动)
--> 爪哇
----> MainActivity.java(此风味的具体代码)
- 主要的
--> AndroidManifest.xml(仅使用清单标签,即只使用空清单文件)
当我对这两种口味都有共同的 MainActivity 时,代码运行良好。但是现在当我在模拟器/任何设备上运行代码时,它会在 logcat 中显示此错误
java.lang.RuntimeException:无法实例化活动 ComponentInfo{some.package.flavor1/some.package.MainActivity}:java.lang.ClassNotFoundException:在路径上找不到类“some.package.MainActivity”:DexPathList [[。 ..]]
在进行干净的项目或重建后,有时应用程序工作得很好,但大多数时候应用程序崩溃并给出上述错误。
感谢您阅读问题。我希望它是可以理解的...
android - Android:是否有任何方法可以在不同的 falvors 和 sourceset 之间共享资源?
我有一个具有以下源集和风味的应用程序:flavorDimensions “brand”
我的应用程序是这样的,99% 的布局和类是相同的。例如,只有布局文件main_activity.xml
在不同风格之间有所不同,但其他 20~30 个布局文件完全相同。我不想将这 20~30 个复制到三个不同的风味源集中。有没有办法在三种风格之间共享它们,如果源集中存在文件,它会覆盖共享文件?(比如想要 android 为drawable
and做的drawble-hdpi
,...)?所以我不想拥有
android - 如何为风味变体创建两个不同版本的代码
我想Fragment
为不同的构建变体创建 2 个版本,比如整个代码在风味 1 和风味 2 中会有所不同。我想在不根据BuildConfig.FLAVOR
代码中的参数执行 if-else 的情况下解决这个问题。这意味着如果我有,我希望在构建不同风格时使用不同代码MapFragment
命名的完全相同的类。MapFragment
我想要这样做的原因是我不想MapFragment
从其他版本中对此进行任何引用(在我的应用程序上的任何日志或细节中都有任何参考。这应该像string.xml
本地化一样工作,或者dimens.xml
。有什么办法可以实现这一目标?
原因是我使用的是华为地图和ag-connect
服务以及 Google Play 地图。问题是华为正在使用一些后台定位服务,然后拒绝我在 Google Play 上的应用。这种华为风格永远不应该在 Google Play 上提供,它就像华为商店应用程序的独立副本。
这意味着如果我.apk
从 Google Play(风格 1)构建,我不会包含任何来自华为风格的 ag-connect 服务或类或引用/导入,反之亦然。
更新:
当我检查下面的评论时,我尝试创建 sourceSets 并将我的风格重新实现到这些新集合中。但它仍然无法编译。
我还需要知道如何将这些口味与类型和来源结合起来。因为我有两个主要来源:谷歌和华为。然后,我需要 4 种风格用于这些来源,如 googleProd、googleProdTest、googleDev、googleDevTest 和华为相同,并且所有这些都应该具有构建类型调试/发布,以防我想将它们发布到 Google Play 商店进行测试。问题是我需要产品子风味之类的东西。每个华为风味(prod、test、dev、dev-test)将使用华为sourceSet(main+huawei),每个google风味(prod、test、dev、dev-test)将使用google sourceSet(main+google)。这意味着主要来源将是两者通用的代码,并且谷歌/华为来源具有相同片段的不同版本。
所以这些应该是最终的 buildVariants:
- googleProd (main+google src)
- googleTest (main+google src)
- googleDev (main+google src)
- googleDevTest (main+google src)
- huaweiProd (main+huawei src)
- huaweiTest (main+huawei src)
- huaweiDev (main+huawei src)
- huaweiDevTest (main+huawei src)
以及所有 8 个版本的发布/调试构建类型。总共有 16 个变体。
这意味着我需要知道如何将 src 与 , 和 flavor 合并google
,并将 src 与,和 flavor合并,prod
所以我不需要4 个相同的 huawei Fragment和4 个对所有口味都相同的 google Fragment。它应该像抽象类/父类一样工作。test
dev
dev-test
huawei
huaweiProd
huaweiTest
huaweiDev
huaweiDev-test
代码梯度:
java - 如何在android多风味项目中使用相同的类但不同的实现
我有3种口味。
风味1
风味2
风味3
和 MainActivity 适用于所有口味。我希望风味 1 和风味 2 的实现相同,风味 3 的实现不同。如果我在 flavor3/java/com/sample/MainActivity 中添加单独的 MainActivity,它会显示“在文件中找到重复的类”并且文件夹结构如下。
主/java/com/sample/MainActivity
风味1
风味2
flavor3/java/com/sample/MainActivity
我需要添加所有口味的 MainActivity 吗?
喜欢 :
主要的/
flavor1/java/com/sample/MainActivity
flavor2/java/com/sample/MainActivity
flavor3/java/com/sample/MainActivity
但是每次我必须在风味1发生变化时更新并在风味2中进行更改时都这样做。有什么解决办法吗?