android 添加jar包 编译错误

08:51:06 293 293 hiddenapi.cc:552] Superclass/interface Lkotlin/coroutines/jvm/internal/SuspendLambda; of class Landroidx/window/area/WindowAreaControllerImplrearDisplayStatus1; from dex file "out_sys/soong/.intermediates/frameworks/base/framework-minus-apex/android_common/aligned/framework-minus-apex.jar!classes4.dex" was not found. Either it is missing or it appears later in the classpath spec.

/bin/sh: line 1: 293 Aborted (core dumped) out_sys/host/linux-x86/bin/hiddenapi list --boot-dex=out_sys/soong/.intermediates/packages/modules/IPsec/android.net.ipsec.ike/android_common_com.android.ipsec/aligned/android.net.ipsec.ike.jar --boot-dex=out_sys/soong/.intermediates/external/apache-xml/apache-xml/android_common_apex31/dex-withres-aligned

原因:

Android类加载路径有两个BOOTCLASSPATH,SYSTEMSERVERCLASSPATH,BOOTCLASSPATH先加载。

BOOTCLASSPATH中的jar包如果对SYSTEMSERVERCLASSPATH中的jar包有依赖,则会出现上述错误。

解决办法:

1.将BOOTCLASSPATH中的jar移除,在device.mk中 PRODUCT_BOOT_JARS_EXTRA这个字段中删掉对应模块

2.将SYSTEMSERVERCLASSPATH中的jar包添加到BOOTCLASSPATH,方式如上在PRODUCT_BOOT_JARS_EXTRA中添加

3.将BOOTCLASSPATH中的jar中删除对SYSTEMSERVERCLASSPATH依赖的逻辑

在framework.jar中依赖了其他jar包;添加的jar包又对 SYSTEMSERVERCLASSPATH (services.jar)有依赖。framework.jar是加在了BOOTCLASSPATH路径中的(先加载),所以在编译framework.jar时,在BOOTCLASSPATH路径中找不到services.jar中的类,此时SYSTEMSERVERCLASSPATH中的类还未加载,导致编译报错,这种情况就是无法编译的。

相关推荐
COSMOS_*3 小时前
2025最新版 Android Studio安装及组件配置(SDK、JDK、Gradle)
android·ide·jdk·gitee·android studio
jian110583 小时前
android studio Profiler性能优化,查看内存泄漏
android·性能优化·android studio
建群新人小猿5 小时前
陀螺匠企业助手——组织框架图
android·java·大数据·开发语言·容器
TheNextByte16 小时前
如何将文件从Android无线传输到 iPad
android·ios·ipad
赫萝的红苹果6 小时前
实验探究并验证MySQL innoDB中的各种锁机制及作用范围
android·数据库·mysql
叶落无痕527 小时前
Android Studio 2024.3.1 连接夜神模拟器
android·ide·android studio
玲子的猫7 小时前
安卓原生开发实现图片双指放大预览功能
android
2501_915106328 小时前
如何在iPad上高效管理本地文件的完整指南
android·ios·小程序·uni-app·iphone·webview·ipad
似霰8 小时前
AIDL Hal 开发笔记5----实现AIDL HAL
android·framework·hal
2501_915106329 小时前
iOS 成品包加固,在只有 IPA 的情况下,能做那些操作
android·ios·小程序·https·uni-app·iphone·webview