我已经在供应商分区中创建了一个新模块。当我尝试将我的模块链接到框架时,我一直收到这个错误。我不能理解sdk_version的不同变体之间的关系。"system_server_current“,"current","core_platform","module_current”...
是否有文件可以解释这些问题并解决下面的问题?
wifi-service-pre-jarjar依赖于新模块。
错误: frameworks/opt/net/wifi/service/Android.bp:47:1:模块"wifi-service-pre-jarjar“变体"android_common":针对系统服务器API进行编译,但依赖项"newmodule”针对源或目标模块的私有API.Adjust sdk_version:属性进行编译,以便使用与源模块相同或更小的API集构建目标模块。
发布于 2021-02-22 23:48:46
我已经为它写了一个基于Android 8.1的注释,Introduce link_type in AOSP build system。看起来Android 11引入了更多的link_type。
sdk_version基于link_type,用于拆分系统和app之间的依赖关系。如果您的应用仅使用标准SDK API,则应将您的sdk_version设置为current或特定的API版本。否则,您应该根据您使用的接口将sdk_version设置为system或其他变体,或者直接设置platform_apis: true以让您的模块使用私有接口。
如果您的依赖模块使用私有API,则您的模块继承使用私有API的状态。这个状态可以从你的依赖模块,或者依赖模块的依赖模块等传递给你的模块。
您可以查看Android 11的构建系统源代码,以了解有关sdk_version的更准确和详细的知识。
https://stackoverflow.com/questions/66312165
复制相似问题