在AOSP 13源码中构建Kotlin Android应用遇依赖解析错误求助
依赖解析错误修复方案
一、解决Android Support库与AndroidX冲突/缺失问题
替换Rxlifecycle为AndroidX版本
当前使用的rxlifecycle-components-0.6.1依赖旧Android Support库,但AOSP 13已全面迁移到AndroidX,无内置Support库。需替换为rxlifecycle-androidx版本:- 删除
libs目录下的rxlifecycle-0.6.1.aar和rxlifecycle-components-0.6.1.aar - 下载对应版本的
rxlifecycle-0.6.1.aar和rxlifecycle-androidx-0.6.1.aar - 更新Android.bp中的
android_library_import配置:android_library_import { name: "rxlifecycle-0.6.1.aar", aars: ["libs/rxlifecycle-0.6.1.aar"], sdk_version: "33" } android_library_import { name: "rxlifecycle-androidx-0.6.1.aar", aars: ["libs/rxlifecycle-androidx-0.6.1.aar"], sdk_version: "33" } - 在
android_app的static_libs中,替换rxlifecycle-components-0.6.1.aar为rxlifecycle-androidx-0.6.1.aar,同时移除android-support-v7-appcompat(避免与AndroidX冲突)
- 删除
统一AndroidX依赖
保留androidx.appcompat_appcompat,彻底移除旧Support库相关配置,确保所有UI依赖都基于AndroidX。
二、修复OkHttp LoggingInterceptor依赖问题
okhttp3.logging.HttpLoggingInterceptor无法解析父类okhttp3.Interceptor,按以下步骤修复:
- 重新下载
okhttp-3.11.0.jar和logging-interceptor-3.11.0.jar,确保文件完整无损坏 - 在
java_import的java-libs中,调整jar顺序,将okhttp-3.11.0.jar放在logging-interceptor-3.11.0.jar之前
三、补充RxAndroid依赖
错误unresolved reference: rx.android.schedulers.AndroidSchedulers是缺少RxAndroid jar包导致:
- 下载对应版本的
rxandroid-2.1.1.jar(与gradle中io.reactivex.rxjava2:rxandroid版本匹配) - 将jar放入
libs目录,添加到java_import的jars列表:jars: [ // 其他已存在的jar "libs/rxandroid-2.1.1.jar", ]
四、替换Kotlin Android Extensions
kotlinx.android.synthetic已被官方废弃,且AOSP环境支持有限,建议切换为ViewBinding:
- 在
android_app配置中添加viewbinding: true开启ViewBinding - 修改代码中的布局引用逻辑:
替换
为import kotlinx.android.synthetic.main.activity_main.buttonDownloadFile setContentView(R.layout.activity_main)import com.myapp.sample.databinding.ActivityMainBinding val binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // 通过binding对象访问控件,如binding.buttonDownloadFile
五、其他细节优化
- 移除
android_app的static_libs中重复的com.google.android.material_material依赖 - 统一Kotlin版本:下载与gradle中
$kotlin_version匹配的kotlin-stdlibjar包,替换现有kotlin-stdlib-1.5.20.jar - 调整
DOWNLOAD_SERVICE引用:直接使用Context.DOWNLOAD_SERVICE替代RxAppCompatActivity.DOWNLOAD_SERVICE,避免依赖组件类的静态常量
内容的提问来源于stack exchange,提问作者Margish thumar
相关产品推荐
相关产品推荐

