- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个具有管理模式和用户模式的应用程序,每个模式都有自己的布局、字符串和可绘制资源文件。我想知道如何根据用户可以在运行时切换的应用程序模式更改资源 SourceSet。
目前,我使用 2 种产品口味来做到这一点。但是口味的问题是它是构建时间,我必须创建 2 个不同的 apk,每个口味一个。因此,能够在运行时更改 SourceSet 意味着我只能拥有 1 个 apk。
更新:我只是想让一个 TextView 调用 R.string.title,这将根据用户模式(管理员或用户)调用不同的字符串文件。这与更改 Locale 语言(例如 en vs fr)将调用适当的文件而无需更改代码相同。
最佳答案
I want to know how to change the resources SourceSet based on the app mode which can be toggled by the user at runtime.
那是不可能的。源集是一个编译时构造。 APK 包含基于您在编译 APK 时选择的构建变体的源集内容——其他源集的内容不在该 APK 中。
I am creating an app that has admin and user modes, and each mode has its own layouts, strings, and drawable resource files.
那么这要么是两个应用程序(和两个 APK),要么您需要将所有这些资源放在一个源集中并放入您的一个 APK。
通常,管理模式还涉及专用的 Java/Kotlin 代码(例如,专用的 fragment ),因此仅交换资源是不够的。
如果您仅通过 Play 商店进行分发,如果您担心包含用户和管理员代码/资源的 APK 的大小,则可以考虑使用动态功能模块。
关于Android:根据用户设置以编程方式更改 SourceSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56532014/
这个问题类似于Make one source set dependent on another 除了主要的 SourceSet,我还有一个 testenv SourceSet。 testenv Sou
我是 gradle & groovy 的新手,我不知道这样一个声明的确切含义: sourceSets.all*.java 它是一个有效的 groovy 表达式吗? 最佳答案 它是一个 Groovy G
如何将单个源集添加到多个子项目? 首先 ...是的,我知道这有多荒谬。这只是我必须做的事情。 设置 该项目使用 Groovy DSL。 有 3 个子项目(A、B、C),每个子项目都有自己独特的主源集。
当您遇到这样的障碍时: sourceSets { main { java { srcDir 'spec/src' srcDir 'shared/src'
我的gradle多项目布局是这样的: rootProject |-- project1 | |-- project2 | |-- src | |-- main |
我正在尝试从 Eclipse/ANT 迁移到 Android Studio/Gradle。我们当前的 ant-build 支持 N 个客户(build-targets),一个客户由三元组皮肤/玩家/客
我正在创建一个具有管理模式和用户模式的应用程序,每个模式都有自己的布局、字符串和可绘制资源文件。我想知道如何根据用户可以在运行时切换的应用程序模式更改资源 SourceSet。 目前,我使用 2 种产
我正在使用Gradle的TestKit,并希望确保插件将正确的路径添加到sourceSets.main.proto。 如何访问该信息? 最佳答案 我还没有找到从TestKit访问Project对象的方
我已经开始在Gradle构建中使用Kotlin DSL。在用Groovy DSL编写以下代码之前: sourceSets.main.resources.srcDirs("src/main/resour
最近,我正在一个使用许多gradle groovy插件的项目中工作,我引入了一个块,在sourceSets中添加了一些静态文件。现在如何编写对sourceSets块的测试? 我在sourceSets中
我想知道是否有返回 SourceSet 完整路径字符串或文件目录的属性,例如 ${project.projectDir}/src/${sourceSet.name}。 apply plugin: 'j
我有一个 build.gradle.kts对于一个小型的纯 kotlin 项目(我知道我使用的是稍微非标准的源路径): plugins { kotlin("jvm") version "1.3
假设我有以下 sourceSets: sourceSets { flavor1 { assets.srcDirs = ['repo-assets/flavor1']
我有 2 种风格的应用程序,每种都有自己的 google maps (v1) key 用于调试和发布(意味着总共有 4 个 key )。所以我想知道我是否可以根据 buildType 和 produc
sourceSets { main { java.srcDirs = ['src/main/kotlin', 'src/main/java'] res.srcDirs =
在 Gradle 6.1.1 上,如何为 android 项目添加 sourceSets? 其他问题的答案不再有效,getByName("name") 返回错误,SourceSet with name
我试图让我的一个项目 (ProjectA) 生成一个包含所有测试类的 jar 文件,以便它可以在 ProjectB 中使用。 我做了一些研究,发现这是一个可能的解决方案:Create test jar
我是 Gradle 的新手,我的任务是将大项目从 Maven 转移到 Gradle。还有一个问题,我需要在 wicket 模块中设置 sourceSet,因为 HTML 文件位于 java 文件旁边。
像上面一样,我的build.gradle文件无法同步,因为它在源集“main”上找不到属性“jni”。我正在使用gradle-experimental:0.7.0。 我不想在编译中使用Android.
我想创建gradle插件,它将添加类型为 JavaExec 的其他任务 我有插件: class CustomPlugin implements Plugin { @Override void
我是一名优秀的程序员,十分优秀!