Android Studio Artic Fox(4.x)添加framwork.jar依赖相关问题
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依赖相关问题相关推荐
- 关于Android Studio Arctic Fox 无法在 build.gradle(Project) 中添加第三方Maven仓库的解决方案
问题描述 在 Android Studio Arctic Fox 版本中创建项目,原本应该在 build.gradle(Project) 中配置第三方 Maven 仓库,手动配置后居然报错: 1: T ...
- Android Studio Arctic Fox gradle 配置
Android Studio Arctic Fox build.gradle allprojects 第三方maven库配置 build.gradle 配置 1. 找不到依赖 2.allproject ...
- Android Studio官方文档之添加URL和App索引支持
Android Studio官方文档之添加URL和App索引支持 本文由nyk翻译,jkYishon审校. Android Studio可以帮你在App中添加对URLs,app索引,搜索功能的支持.这 ...
- 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 ...
- Android Studio Arctic Fox 新版本不能 allprojects 报错问题
最近升级到Android Studio Arctic Fox 2020.3.1 Patch版本,发现这个问题,一些第三方库没有引用成, 原因:之前的项目build.gradle文件配置里面的allpr ...
- 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 ...
- Android Studio Arctic Fox 稳定版(android-studio-2020.3.1.26)下载地址
Android Studio Arctic Fox 稳定版(Android Studio 4.3)开发工具版本适用多个平台系统,它是Android Studio 4.2.2的下一个版本Android ...
- 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的下一个版本 ...
- Android Studio Arctic Fox 版本迭代命名含义
准备开始学习 Jetpack Compose 官网让下载 Android Studio Arctic Fox,看着版本命名跟之前的不同,所以记录一下 之前和现在版本都有Canary版和Beta版以及r ...
最新文章
- Android开源项目分类汇总-转载
- Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化
- JSONObject toJSONString错误
- 工业以太网交换机常见故障排除的三种方法
- 把exe里面的资源通通取出来
- eplan连接定义点不显示_显示无线桥接成功,但是连接副路由器的设备依然上不去网的问题...
- js 对象,json数组遍历
- Js返回顶部实例代码
- 我是如何获得微信内置表情的
- html调用js的方法
- tplink连接服务器失败_tplink路由器网络已连接但是上不了网怎么办?
- 连接数据线截图/截视频
- Spoon Kettle 输入之 excel 输入详解(Microsoft Excel input)
- jboss启动oracle表不存在,JBoss的部署及运行
- 教你用记账方法了解账户总收支结余
- C++——计算x的n次幂
- 十门峡旅游攻略:临安十门峡的春天
- 5G网络入门基础--5G网络的实现流程
- icp光谱仪的工作原理_ICP基本原理解析.ppt
- Scheduler (Long-term,Short-term, Medium-term Scheduler) Dispatcher
热门文章
- android地图开发出现java.lang.NoClassDefFoundError: MyPositionActivity......异常解决办法
- 七牛云 -- 对象存储管理工具介绍
- Elasticsearch——》_bulk
- SV绿皮书笔记(三)
- 武器装备系统数字孪生技术
- 浅谈一级机电管道设计中的压力与介质温度
- linux操作系统论文可复制,linux操作系统课程论文
- 计算机学院生物信息学,生物信息学专业本科生培养方案-哈尔滨工业大学计算机学院.pdf...
- 深圳杯数学建模2020c题_模拟退火解 深圳杯2020C题
- 通过阿里云 app 完成个人账号实名认证 新手必看教程