问题标签 [android-buildconfig]

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 投票
3 回答
12178 浏览

android - 使用 Gradle 在 Android Studio 中更改 BuildConfig 文件

我正在尝试使用Android StudioBuildConfig中的 Gradle 将 URL 添加到我的文件中。所以我将此代码添加到文件中gradle

然后我尝试重建我的项目并希望这个值会出现在BuildConfig文件中,但事实并非如此。有人可以解释如何正确地做到这一点吗?

我的完整gradle文件代码如下

之后是依赖关系,但我认为它与问题无关。

0 投票
1 回答
347 浏览

android - 在将 compileSdkVersion 和 targetSdkVersion 更新为 26 时 - 使用配置的资源“attr/fontFamily”的重复值

我正在将我的应用程序编译和目标 SDK 版本从 23 更新到 26(Android 8.0)。但更新后,出现以下错误:

错误:资源“attr/fontFamily”的重复值与配置“。

现在在 gradle 中有以下支持库:

请不要建议将 targetSdkVersion 降级到 25。也不要建议这个问题:Duplicate value for resource 'attr/font' with config"

0 投票
0 回答
95 浏览

android - 构建工具和 sdk 更新后,带有 viewpager 和 FragmentPagerAdapter 的 Tablayout 在垂直滚动时崩溃

我有一个遗留应用程序,它具有以下构建配置

targetSdkVersion 23 compileSdkVersion 23 buildToolsVersion 23.0.2 SupportLibVersion 23.4.0 gradle 2.2.0

我将它们更新为

gradle 版本 3.1.4 targetSdkVersion 27 compileSdkVersion 27 buildToolsVersion 27.0.3 SupportLibVersion 27.1.1 约束布局 1.0.2

现在,当我在模拟器或移动设备中运行应用程序时,当我垂直滚动任何选项卡项时,主屏幕作为 Tablayout 视图页面的应用程序在每个页面(FragmentPagerAdapter)中以列表形式加载了许多片段。实际错误我升级后得到的是“没有找到 .. 片段 ID 的视图”。我根本没有进行任何代码更改,只是更新了配置。

我试图调试它,但它似乎是一个支持库问​​题。我已经验证我对所有不同的依赖项(如 appcompat、design、recyclerview、annotation 等)使用相同的支持库版本。请提出解决方案。

注意:我尝试降级支持库版本并调试,如果我更改为 23.4.0 不会发生崩溃,从 25.2.0 开始它会崩溃。

0 投票
1 回答
1505 浏览

android - 如何在 android studio 中获取 proguard 错误

我为发布启用了 proguard 并收到以下错误:

我怎样才能看到错误?

0 投票
1 回答
498 浏览

android - Android Gradle:在 gradle 任务或方法中调用 buildConfigield

我正在尝试使用 gradle 添加 BuildConfig 变量。buildTypes: release/debug当我在 gradle和 on 上调用它时,我看到 buildConfigField 是有效的defaultConfig

但我正在尝试在 gradle 任务中创建这个。例如:

然后调用我的任务。但在那种情况下,当我调用 myTask 时,gradle 失败了,我得到:

是否有任何选项可以调用buildConfigField并使其在任务中工作?

0 投票
0 回答
299 浏览

android - 如何在主文件夹中导入口味的java文件?

我正在创建一个具有不同产品风格的 android 项目。我的项目结构是这样的 Flavor1

风味2

主要的

其中 Flavor1 包含一个 Constants.java 文件,Flavor2 也包含一个 Constants.java 文件,但它不在 main 中。我的主包包含另一个类 Controller,它使用常量中定义的变量。当我尝试运行我的项目时,它会引发错误“无法解析符号常量”。当我按 alt+enter 时,它从选定的风味导入文件,错误消失了,但是当我切换到其他风味时,它无法识别导入,因为它来自风味 1。这是我的 build.gradle 文件中的代码,它定义了产品风格和源集。

我希望每种口味都有自己的常量文件。如何做到这一点?如何在 main 中使用每种风格的常量文件,以便它导入或使用所选构建变体的文件?任何帮助将不胜感激。

0 投票
1 回答
113 浏览

android - 在一个构建配置上生成签名的 APK 失败

我正在做一个项目,必须生成一个签名的 APK。它非常适合一种风格和另一种风格的调试。它说密码验证在我正在尝试构建的配置的发布配置上失败。这会是什么?

最新的安卓工作室。

0 投票
2 回答
1703 浏览

android - 如何通过 UI 更新我的 gradle 中定义的 BASE_URL?

我目前正在创建一个带有edittext的警报对话框,它在我的登录屏幕上点击打开,它应该允许更新我的gradle中定义的BASE_URL。比如说我目前正在定义我的 base_url 如下:

在运行应用程序时,它会转换为 buildConfig URL,以便在 Buildconfig.java 中显示为:

现在我的问题是,如何在登录屏幕上的警报对话框中添加的编辑文本框中更新此基本 URL,这样如果我将编辑文本文本更改为:

单击保存后,它应该保存新条目并将其应用于整个应用程序的 buildconfig 文件。我还想显示一个重置按钮,以允许将此 URL 重置为原始 URL。任何想法如何去做?

我正在为 alertdialog 使用类似的代码:https ://medium.com/@mujtahidah/custom-dialog-with-edittext-and-button-action-android-fc64ef5eb2b2

只是想知道是否有一种方法可以在 UI 中动态更新 BASE_URL 并即时保存?有什么想法或例子吗?提前致谢!

0 投票
2 回答
756 浏览

android - Gradle - Android - buildConfigField 基于一对 (productFlavors, buildTypes)

我有一个字段 YOUR_POWER 设置为基于 BuildType 的值。

我的配置build.gradle

我怎样才能有一些配置,如:free + debug = power 70; free + release = power 80; paid + debug = power 90paid + release = power 100

欢迎任何建议/替代解决方案:)

@updated:这只是一个例子,字段类型也可以是字符串。

同样的问题:如何为每个构建变体设置不同的构建类型

0 投票
2 回答
1684 浏览

android - 使用 ProGuard 缩小代码后,我在 APK 分析器中的哪里可以找到我的 BuildConfig?

请看以下两张来自Android Studio 上的分析 APK的图片。

  • 第一个是minifyEnabled = false, 和
  • 另一个是 with minifyEnabled = true(当然是在用 mapping.txt 解码之后)

在此处输入图像描述
minifyEnabled = false. BuildConfig有没有。

在此处输入图像描述
minifyEnabled = true(使用 mapping.txt 解码)。BuildConfig不在这里。

我可以BuildConfigclasses.dex缩小之前找到,但不能在缩小之后找到。我找不到任何关于此的文档/讨论,但是在使用ProGuardBuildConfig缩小后是否有一些规则可以删除?那样的话,是不是意味着把敏感信息放进去比较安全呢?或者,它可能只是隐藏在其他地方?classes.dexBuildConfig

如果重要的话,我的 ProGuard 版本是 4.7。