Android12上新增jar遇到的问题总结

最近在vendor目录下新增jar遇到一个问题,新增jar完全没问题,但是如果在framework/base/service下通过static_lib调用,就会出现如下报错,在SystemUI中调用都不会出现此问题,这个问题应该就是出现在framework/base/service这个目录下调用才导致的。

error: frameworks/base/services/Android.bp:82:1: module "services" variant "android_common": non-optimal order of jars on the system server classpath: 'services' precedes its dependency 'xxx', so dexpreopt is unable to resolve any references from 'services' to 'xxx'.

我尝试了好几种方法

  1. 将我这个jar目录移动到framework/base/service下,也是同样的报错,且我未修改我的任何代码。

  2. 在framework/base/service下创建目录,将我的jar移动到这下面,参考其他bp的写法,如下所示,就可以编译成功了。

复制代码
package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_base_license"],
}

filegroup {
    name: "services.searchui-sources",
    srcs: ["java/**/*.java"],
    path: "java",
    visibility: ["//frameworks/base/services"],
}

java_library_static {
    name: "services.searchui",
    defaults: ["platform_service_defaults"],
    srcs: [":services.searchui-sources"],
    libs: ["services.core"],
}

2的结果就是不会有单独的jar生成到out下的system/framework下,只会有中间编译产物的jar生成,但由于这个也满足我的需求,就用这个方式了。

算是曲线救国了吧😂

相关推荐
liu_sir_7 分钟前
安卓设置界面-关于手机修改为关于设备
android·大数据·elasticsearch
new_bie_B20 分钟前
Android16 应用安装流程源码分析
android
帅次23 分钟前
LazyColumn 懒加载、items 与 key
android·flutter·kotlin·android studio·webview
zhangphil25 分钟前
Android显示系统RenderThread绘制HARDWARE/普通格式Bitmap与GPU与CPU处理机制
android
美狐美颜SDK开放平台1 小时前
什么是美颜SDK?高并发场景下的企业级美颜SDK如何开发?
android·人工智能·ios·美颜sdk·第三方美颜sdk·视频美颜sdk
YF02111 小时前
Protobuf与 gRPC 的关系:从理论到 Android + Go 实战通信全解析
android·后端·grpc
YF02111 小时前
Android 卡顿性能优化专项治理:从 ANR 根源到系统性重构实践
android·app
蒙奇·D·路飞-2 小时前
Kotlin安卓app版本自动升级设计实现
android
博客zhu虎康2 小时前
小程序按钮实现先表单校验再走手机号获取功能
android·javascript·小程序
码途漫谈2 小时前
Easy-Vibe高级开发篇阅读笔记(十三)——多平台开发之Android App 原生开发
android·人工智能·笔记·ai·开源·ai编程