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中的类还未加载,导致编译报错,这种情况就是无法编译的。

相关推荐
一过菜只因8 小时前
MySql Jdbc
android·数据库·mysql
音视频牛哥9 小时前
Android音视频开发:基于 Camera2 API 实现RTMP推流、RTSP服务与录像一体化方案
android·音视频·安卓camera2推流·安卓camera2推送rtmp·安卓camera2 rtsp·安卓camera2录制mp4·安卓实现ipc摄像头
2501_937145419 小时前
2025 IPTV 源码优化版:稳定兼容 + 智能升级
android·源码·电视盒子·源代码管理·机顶盒
Nerve13 小时前
FluxImageLoader : 基于Coil3封装的 Android 图片加载库,旨在提供简单、高效且功能丰富的图片加载解决方案
android·android jetpack
元气满满-樱13 小时前
MySQL基础管理
android·mysql·adb
summerkissyou198713 小时前
android13-audio-AudioTrack-写数据流程
android·音视频
董三毛16 小时前
Kotlin Coroutine 底层实现原理
android
L1087016 小时前
AutoJsPro GoogleMaterial3 M3组件使用示例
android
枣把儿17 小时前
「zotepad」用Gemini3pro写出一个高效写作和发文的记事本应用
android·前端·nuxt.js
明川17 小时前
Android Gradle 学习 - 生命周期和Task
android·前端·gradle