Android Studio Arctic Fox添加framwork.jar依赖相关问题

  • 添加framework依赖步骤
    • 1. 找到jar包
    • 2. 将上方获取到的framework.jar拷贝到需要引用的模块(module)中
    • 在需要修改的模块的build.gradle中添加编译参数修改
    • Sync Project with Gradle Files
    • 3. 补充情况,如果Android Studio依旧报错,可以手动调整一下iml文件orderEntry顺序
    • 4. 补充,感谢小草房大佬发现的gradle版本问题
    • 5. 补充,代码调整iml文件中framework依赖优先级

目前,Android studio更新了大版本Artic Fox,有幸在被迫安装了这个版本后踩坑,今天记录一篇在添加framework.jar依赖遇到的坑及解决方案,以及抛出未解决的问题向大佬们求助。

添加framework依赖步骤

1. 找到jar包

网上流传最广的jar包目录:

out/target/common/obj/JAVA_LIBRARY/framework_interminate/classes.jar

我可以告诉你,从最近几代的Android的目录结构可以看出,编译的中间文件早就不在这里面了,针对较新的平台(按照理论来说,引入soong的Android N及其以后应该都是遵循下方的目录结构了),可以按照如下来找:

Android 9/10:
out/soong/.intermediates/frameworks/base/framework/android_common/combined/framework.jarAndroid 11:
out/soong/.intermediates/frameworks/base/framework-minus-apex/android_common/combined/framework-minus-apex.jar

2. 将上方获取到的framework.jar拷贝到需要引用的模块(module)中

这是我目前自用的版本

如果你仅有app这一个module,即复制到下面路径内:

<$project>/app/libs/framework.jar

或者如下:

同理,如果单独的一个module在使用,比如module名为framework-ext,则放在这里:

<$project>/framework-ext/libs/framework.jar

然后右键framework.jar文件,然后Add as Library ,再选当前的module

然后修改对应模块的build.gradle,将:implementation files(‘libs/framework.jar’)的引用方式更换为compileOnly files(‘libs/framework.jar’):
compileOnly 命令的意思是:只在编译时有效,不会参与打包

在需要修改的模块的build.gradle中添加编译参数修改

以截止目前最新的Android Studio Preview (Arctick Fox 2020.3.1 Beta 3版本号203.7717.56.2031.7395685)为例:
由于没有了iml中间文件,且-Xbootclasspath/p修改方式不生效;因此Android Studio 3.x的修改方法不适用于Android Studio 4.x上;
经验证,修改bootclasspath的方法是,在需要修改的模块的build.gradle中添加如下编译参数修改:

android {...gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet = options.bootstrapClasspath.getFiles()List<File> newFileList =  new ArrayList<>();//JAVA语法,可连续调用,输入参数建议为相对路径newFileList.add(new File("libs/XXX.jar"))newFileList.add(new File("libs/framework.jar"))//最后将原始参数添加newFileList.addAll(fileSet)options.bootstrapClasspath = files(newFileList.toArray())}}
}

Sync Project with Gradle Files

点击如下两个地方:

3. 补充情况,如果Android Studio依旧报错,可以手动调整一下iml文件orderEntry顺序

iml文件寻找顺序如图,先在Android Studio左上角选择 project 目录:

然后如图选择 .idea —> modules —> app :

在 iml 文件下滑找到一排 orderEntry 找到你添加依赖的framwork ,将其顺序排到第一位,也就是 SDK 之前:

这样会解决报错问题,但是,因为 iml 文件是自动生成,所以每次重启IDE都要重新改一下!

4. 补充,感谢小草房大佬发现的gradle版本问题


如图,查看gradle版本,经小草房大佬的验证,6.6至7.3.1皆可解决报错的问题

5. 补充,代码调整iml文件中framework依赖优先级

在前文,修改编译参数的地方,也就是模块的build.gradle中添加如下代码

gradle.projectsEvaluated {System.out.println("Hello")//此处需改为自己的路径def imlFile = file( getRootDir().path + "/.idea/modules/app/" + "/Logo.app.iml")println 'Change ' + imlFile.path + ' order'try {def parsedXml = (new XmlParser()).parse(imlFile)def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }parsedXml.component[1].remove(jdkNode)System.out.println("222")def sdkString = "Android API " + 31 + " Platform"println 'what' + sdkStringnew Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))} catch (FileNotFoundException e) {// nop, iml not foundprintln "no iml found"}}

代码会有飘红但不影响运行,注意将路径改为自己的路径!!!

如果这样依然不能导入jar包可以联系我,互相探讨,或者有更好的方法也请评论在下方,谢谢!

Android Studio Artic Fox(4.x)添加framwork.jar依赖相关问题相关推荐

  1. 关于Android Studio Arctic Fox 无法在 build.gradle(Project) 中添加第三方Maven仓库的解决方案

    问题描述 在 Android Studio Arctic Fox 版本中创建项目,原本应该在 build.gradle(Project) 中配置第三方 Maven 仓库,手动配置后居然报错: 1: T ...

  2. Android Studio Arctic Fox gradle 配置

    Android Studio Arctic Fox build.gradle allprojects 第三方maven库配置 build.gradle 配置 1. 找不到依赖 2.allproject ...

  3. Android Studio官方文档之添加URL和App索引支持

    Android Studio官方文档之添加URL和App索引支持 本文由nyk翻译,jkYishon审校. Android Studio可以帮你在App中添加对URLs,app索引,搜索功能的支持.这 ...

  4. Android Studio Arctic Fox | 2020.3.1、Gradle 7.0升级记录

    环境 Android Studio Arctic Fox | 2020.3.1 Gradle.AGP 7.0 Kotlin 1.5.31 问题1 Value '/Applications/Androi ...

  5. Android Studio Arctic Fox 新版本不能 allprojects 报错问题

    最近升级到Android Studio Arctic Fox 2020.3.1 Patch版本,发现这个问题,一些第三方库没有引用成, 原因:之前的项目build.gradle文件配置里面的allpr ...

  6. Android Studio Arctic Fox 2020.3.1.24下载地址

    Android Studio Arctic Fox 2020.3.1.24 北极狐(旧命名规则Android Studio 4.3)下载地址: Android Studio Arctic Fox(20 ...

  7. Android Studio Arctic Fox 稳定版(android-studio-2020.3.1.26)下载地址

    Android Studio Arctic Fox 稳定版(Android Studio 4.3)开发工具版本适用多个平台系统,它是Android Studio 4.2.2的下一个版本Android ...

  8. Android Studio 4.3 (Android Studio Arctic Fox 2020.3.1.26)下载地址

    Android Studio 4.3(Android Studio Arctic Fox 2020.3.1.26)开发工具版本适用多个平台系统,它是Android Studio 4.2.2的下一个版本 ...

  9. Android Studio Arctic Fox 版本迭代命名含义

    准备开始学习 Jetpack Compose 官网让下载 Android Studio Arctic Fox,看着版本命名跟之前的不同,所以记录一下 之前和现在版本都有Canary版和Beta版以及r ...

最新文章

  1. Android开源项目分类汇总-转载
  2. Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化
  3. JSONObject toJSONString错误
  4. 工业以太网交换机常见故障排除的三种方法
  5. 把exe里面的资源通通取出来
  6. eplan连接定义点不显示_显示无线桥接成功,但是连接副路由器的设备依然上不去网的问题...
  7. js 对象,json数组遍历
  8. Js返回顶部实例代码
  9. 我是如何获得微信内置表情的
  10. html调用js的方法
  11. tplink连接服务器失败_tplink路由器网络已连接但是上不了网怎么办?
  12. 连接数据线截图/截视频
  13. Spoon Kettle 输入之 excel 输入详解(Microsoft Excel input)
  14. jboss启动oracle表不存在,JBoss的部署及运行
  15. 教你用记账方法了解账户总收支结余
  16. C++——计算x的n次幂
  17. 十门峡旅游攻略:临安十门峡的春天
  18. 5G网络入门基础--5G网络的实现流程
  19. icp光谱仪的工作原理_ICP基本原理解析.ppt
  20. Scheduler (Long-term,Short-term, Medium-term Scheduler) Dispatcher

热门文章

  1. android地图开发出现java.lang.NoClassDefFoundError: MyPositionActivity......异常解决办法
  2. 七牛云 -- 对象存储管理工具介绍
  3. Elasticsearch——》_bulk
  4. SV绿皮书笔记(三)
  5. 武器装备系统数字孪生技术
  6. 浅谈一级机电管道设计中的压力与介质温度
  7. linux操作系统论文可复制,linux操作系统课程论文
  8. 计算机学院生物信息学,生物信息学专业本科生培养方案-哈尔滨工业大学计算机学院.pdf...
  9. 深圳杯数学建模2020c题_模拟退火解 深圳杯2020C题
  10. 通过阿里云 app 完成个人账号实名认证 新手必看教程