当前位置: 首页 > news >正文

【Android】导入三方jar包/系统的framework.jar

1.Android.mk导包

1).jar包位置

与res和src同一级的libs中(没有就新建)
在这里插入图片描述

2).Android.mk文件

LOCAL_STATIC_ANDROID_LIBRARIES:android静态库,经常用于一些support的导包
在这里插入图片描述

LOCAL_JAVA_LIBRARIES:依赖的java库,一般为系统的jar包
在这里插入图片描述

LOCAL_STATIC_JAVA_LIBRARIES:指定依赖的静态库,三方jar包放在该处,后面为依赖的静态库别名,可以随便取名,但要和后面LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES对应
在这里插入图片描述

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:表示依赖的静态库具体路径,zxing就是上面定义的别名
在这里插入图片描述

注:
代码混淆也需要修改
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
导包后如果不做处理,编译时会出现报错,根据具体的报错信息在proguard.flags文件中加规则

2.AS导包

1).正常导入

把jar包放到项目的libs文件下,右键选择添加为依赖库
在这里插入图片描述

2).正常导入但需要提升三方jar包优先级

有时候使用的jar包与sdk中同名,但需要优先使用三方jar包(此处更重要的是导入了系统的framework,优先使用framework.jar而找不到时的处理)
build.gradle(:app)

导入的jar包修改

compileOnly files('libs/framework.jar')

compileOnly 表示 jar 包只参与编译,不会打包进去

修改项目的build.gradle

有两种方式
1.相对路径

allprojects {gradle.projectsEvaluated {if (!plugins.hasPlugin("android-library") && !plugins.hasPlugin("android")) {return}//configure maven dependenciesconfigurations.each { conf ->if (conf.name == 'compileOnly') {dependencies.add("compileOnly", files('app/libs/framework.jar'))}}//configure compile dependenciestasks.withType(JavaCompile) {Set<File> fileSet = options.bootstrapClasspath.getFiles()List<File> newFileList = new ArrayList<>();newFileList.add(files('app/libs/framework.jar'))newFileList.addAll(fileSet)options.bootstrapClasspath = files(newFileList.toArray())}}
}

2.绝对路径

allprojects {gradle.projectsEvaluated {tasks.withType(JavaCompile) {options.compilerArgs.add('-Xbootclasspath/p:E:\\AndroidProject\\Wifi\\app\\libs\\framework.jar')}}
}

此时,可以正常引用,有时候项目会出现提醒,但不影响正常运行、编译以及打包
在这里插入图片描述

http://www.lryc.cn/news/231900.html

相关文章:

  • 在线升级 redis 到7.2.2
  • 社区新零售:改变生活方式的创新商业模式
  • MySQL/SQLServer判断字符是纯数字或者是其它字符
  • Threejs_02 父子位移+缩放改变
  • LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)
  • 医疗器械展示预约小程序的效果如何
  • 【Vue原理解析】之异步与优化
  • mybatis、mysql 创建时间(create_time)异常自动更新为当前时间
  • shardingsphere 加载慢 优化
  • 我这些年对于自动化测试的理解
  • Java安全架构 JCA、JCE、JSSE、JAAS
  • 面试经典(4/150)删除有序数组中的重复项 II
  • 使用WildCard充值ChatGPT Plus 会员
  • element-plus使用el-date-picker组件时,如何禁止用户选择当前时间之后的日时分秒
  • keepalived安装配置(服务器主备、负载均衡)
  • 盘点一款制作电子杂志的网站,小白也能快速上手
  • 全域全自主建设,亚信科技AntDB数据库助力广电5G业务上线运行
  • 使用 SSH 密钥进行身份验证
  • 国内最受欢迎的电商API接口调用京东商品详情数据
  • windows远程桌面登录ubuntu,黑屏闪退,
  • 12-使用vue2实现todolist待办事项
  • 微信小程序授权登录?
  • React 18 + Hooks +Ts 开发中遇到的问题及解决方案!
  • 推荐一个非常好用的uniapp的组件库【TMUI3.0】
  • LeetCode(19)最后一个单词的长度【数组/字符串】【简单】
  • 使用Docker本地安装部署Drawio绘图工具并实现公网访问
  • IDEA导入jar包
  • 使用flutter的Scaffold脚手架开发一个最简单的带tabbar的app模板
  • aws服务器配置密码登陆
  • 【命令行魔法:掌握Linux基础工具开发的独门技艺】