AS中导入framework.jar包编译,运行全部通过

2024-08-22 20:08

本文主要是介绍AS中导入framework.jar包编译,运行全部通过,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于业务求,要将定制化的framework包导入到AS中,然后不断查阅料,找到一系列比较全的资料。最终整理如下:

1.将jar包放在libs目录下:


2326194-9397d0e3615e6082.png
1

2.右键将包add as library


2326194-9b6d8b6bbdcef726.png
image.png

3.在app的build.gradle下 dependence下:

2326194-ca71e2df7a27f25a.png
image.png

记住:implementation fileTree(include: ['*.jar'], dir: 'libs')必须注释,否则会报错。
将implementation 改为compileOnly(原来的provided已经废弃)

4.然后我们需要将framework的编译顺序更改到系统自带android.jar之前,以前是手动更改,后来发现一段脚本,得救了。在app的build.gradle下,最后添加

preBuild {doLast {def imlFile = file(project.name + ".iml")println 'Change ' + project.name + '.iml order'try {def parsedXml = (new XmlParser()).parse(imlFile)def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }parsedXml.component[1].remove(jdkNode)def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"new 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 found}}
}

这段代码是用来将系统jar包自动放置于最后的位置。编译之后,打开app.iml可以查看到效果:


2326194-3c0413b119fdc5d9.png
image.png

然后为了使framwork包生效,需要在系统的build.gradle下添加一段代码


2326194-7956df7fbed4b38f.png
image.png
2326194-acbc50c2a2086eb1.png
image.png

其中前者将framework包打入apk包中,确保不出现打包错误;后者是编译包,在编译器编译时不会出现编译错误的情况。
代码具体如下:

 //添加以下代码,使cframework-base.jar包编译先于android.jargradle.projectsEvaluated {tasks.withType(JavaCompile) {options.compilerArgs.add('-Xbootclasspath/p:D:\\git\\MyApplication\\app\\libs\\framework-base.jar')}}

这个地方一定要注意一点:后面的路径已经要右键framework包---copy relative path,
copy relative path,copy relative path(重要的事情要说三遍,楼主就是这里栽了跟头,csdn,stackoverflow上很多大牛都遇到了)


2326194-454689938922d8f0.png
image.png

然后实验activity的一句话:


2326194-e8a0d52826b92a76.png
image.png

2326194-ed1590f4059220d4.png
image.png

编译通过


2326194-1bedc14bbd214c8e.png
image.png

运行完美

这篇关于AS中导入framework.jar包编译,运行全部通过的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097269

相关文章

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install