【问题标题】:Android R sdk_version issues in Android.bp fileAndroid.bp 文件中的 Android R sdk_version 问题
【发布时间】:2021-02-22 08:19:41
【问题描述】:

我在供应商分区中创建了一个新模块。当我尝试将我的模块与框架链接时,我不断收到此错误。我无法理解 sdk_version 不同变体之间的关系。 "system_server_current" , "current", "core_platform", "module_current" ...

是否有文件可以解释这些并解决以下问题?

wifi-service-pre-jarjar 依赖于 newmodule。

错误:frameworks/opt/net/wifi/service/Android.bp:47:1:模块“wifi-service-pre-jarjar”变体“android_common”:针对系统服务器 API 进行编译,但依赖项“newmodule”是针对私有 API 进行编译。调整 sdk_version: 源模块或目标模块的属性,以便使用与源模块相同或更小的 API 集构建目标模块。

【问题讨论】:

    标签: android android-source android-build


    【解决方案1】:

    我已经根据Android 8.1Introduce link_type in AOSP build system为它写了一个注释。看起来Android 11 引入了更多link_types。

    sdk_version 基于link_type,用于拆分系统和应用之间的依赖关系。如果您的应用仅使用标准 SDK API,则应将您的 sdk_version 设置为 current 或特定的 API 版本。否则,您应该根据您使用的API将sdk_version设置为system或其他变体,或者直接设置platform_apis: true让您的模块使用私有API。

    如果您的依赖模块使用私有 API,则您的模块会继承使用私有 API 的状态。这个状态可以从你的依赖模块,或者依赖模块的依赖模块等传递给你的模块。

    您可以查看Android 11的构建系统源码,了解sdk_version更准确详细的知识。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多