android - 如何在 Android.bp 中添加条件

标签 android compilation android-source android-soong

我想区分 Android Q 和 Android R 之间的代码,如何在 Android.bp 中实现这一点? 在 Android.mk 中我做了这样的事情

ifeq ($(PLATFORM_VERSION), R)
LOCAL_CFLAGS += -DANDROID_R_AOSP
else
LOCAL_CFLAGS += -DANDROID_Q_AOSP

如何在Android.bp中执行以上代码?

最佳答案

按照给定的说明进行操作 here .

替换my_defaults.go中的这部分:

    if ctx.AConfig().Getenv("SOME_ENV_VAR") == "some_value" {
        cflags = append(cflags, "-DCONDITIONAL")
    }

与:

    if ctx.AConfig().PlatformVersionName() == "R" {
        cflags = append(cflags, "-DANDROID_R_AOSP")
    } else {
        cflags = append(cflags, "-DANDROID_Q_AOSP")
    }

引用:link .在旧版本中,此函数称为 PlatformVersion() ( link ),但对于 Android 9 或更高版本你应该没问题。

关于android - 如何在 Android.bp 中添加条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61202083/

相关文章:

android - 在 Android 应用程序中使用 Activity 或 Fragment

linux - compiler.h 文件中有 __cond_lock(x,c) 定义,但没有 __cond_unlock(x,c) 定义?

javascript - 如何从 Kotlin 代码调用 Javascript 函数?

java - 为什么 Java 找不到我的构造函数?

android - AOSP 内核与 Stock 内核之间的技术差异

java - android p 构建失败 - apache-xml_intermediates - hiddenapi

android - 热重载后 Flutter 文本和文本颜色未更新

java - Android 中的 raw 文件夹

java - ClassNotFoundException 与 list 中声明的​​类

android - 如何基于 Google 的 Android 最新拨号器应用程序(或基于 Vanilla 的 ROM,如 Lineage OS)制作拨号器?