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

简介: 在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。

一、前言

在编写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")
        }
    }
相关文章
|
22天前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
68 1
|
22天前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
38 0
|
9天前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
22 5
|
22天前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
31 1
|
23天前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
253 0
Android Studio: 解决Gradle sync failed 错误
|
23天前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
34 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
1月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
70 4
|
23天前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
38 0
|
4月前
|
Java Android开发
Android Studio的使用导入第三方Jar包
Android Studio的使用导入第三方Jar包
35 1
|
Android开发
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
345 1
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法