You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AOSP 13源码中构建Kotlin Android应用遇依赖解析错误求助

依赖解析错误修复方案

一、解决Android Support库与AndroidX冲突/缺失问题

  1. 替换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冲突)
  2. 统一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:

  1. 在android_app配置中添加viewbinding: true开启ViewBinding
  2. 修改代码中的布局引用逻辑:
    替换
    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-stdlib jar包,替换现有kotlin-stdlib-1.5.20.jar
  • 调整DOWNLOAD_SERVICE引用:直接使用Context.DOWNLOAD_SERVICE替代RxAppCompatActivity.DOWNLOAD_SERVICE,避免依赖组件类的静态常量

内容的提问来源于stack exchange,提问作者Margish thumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:11:09