Android Studio:解决AOSP自编译framework.jar引用不到的问题

  • Post author:
  • Post category:其他




一、前言

在编写Android 系统APP过程中,需要使用到一些SYSTEM API或Hiden API,而这些API在AS随机的SDK里面是不具备的,需要我们自己通过AOSP源码编译一份。但在AS配置引用过程中,进程遇到Build.gradle相同的配置,在一些项目中可以引用,在另外一些项目中缺又有问题,一直不明白是什么原因。但如果我们采用绝对路径的话,引用上就没有问题。但如果使用绝对路径,就意味着,每一个代码的用户,都得自己配置一次,非常麻烦,所以,本人就想到了下面的方法。

在这里插入图片描述



二、处理过程

目标文件:Settings\build.gradle



2.1 时灵时不灵的版本

  • 使用 framework.jar 的相对路径
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add("-Xbootclasspath/p:libs/framework.jar")
        }
    }



2.2 绝对灵、粗暴版本

  • 使用 framework.jar 的绝对路径
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add("-Xbootclasspath/p::\\Users\\66176\\Documents\\works\\Gitee\\Note-011_aosp_android-11-r39_settings\\source_as\\Settings\\libs\\framework.jar")
        }
    }



2.3 粗暴的改良版(Finally)

  • 使用 ${project.rootDir} 获取绝对路径,避免hardcode.
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add("-Xbootclasspath/p:${project.rootDir}/libs/framework.jar")
        }
    }



版权声明:本文为yyzsyx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。