Android打包篇:Android Studio将代码打包成jar包教程
一、新建一个as项目,再新建一个model模块
然后再app中的build.gradle中添加model的依赖。然后编译项目。
二、编译完成后,打开model下的build——intermediates——bundles目录,目录下有两个文件夹,debug,default,在default文件夹下有一个classess.jar,就是编译完成的jar包,
这里需要主要的是:因为我们使用的 as 版本不一致,所以会导致classess.jar包的目录页会不一样,不过最终的目录还是在build——intermediates——bundles目录下,小伙伴们可以在这个目录下寻找classess.jar文件,确保可以找到这个文件之后,再进行第三步的操作。
三、在确保classess.jar文件存在的情况下,打开model模块的build.gradle文件,在文件中与android模块中添加如下代码,并编译:
//Copy类型
task makeJar(type: Copy) {
//删除存在的
delete 'build/libs/mysdk.jar'
//设置拷贝的文件
from('build/intermediates/bundles/default/')
//打进jar包后的文件目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
//(我们只关心classes.jar这个文件)
include('classes.jar')
//重命名
rename ('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)
这里需要注意:上述代码中from括号中的是你的classess.jar的文件目录,这里贴的是我自己的目录,不同的as版本可能导致目录不同,所以小伙伴们在用的时候直接换成你们自己的classess.jar路径即可。
四、编译完成以后,找到as的Terminal命令行,输入以下命令并回车:
gradlew makeJar
出现如下文字后,代表编译成功。
BUILD SUCCESSFUL
导出的jar包在model模块下的build——libs文件夹里面,复制出来方便我们以后使用。
这样我们就将我们自己的代码模块打成jar包了,用的时候直接导入jar包就可以了。
补充知识:Android.mk编译出jar
Android.mk编译出jar
Android.mk文件配置
LOCAL_PATH:= $(call my-dir)
#make jar
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE := mytestjar
include $(BUILD_JAVA_LIBRARY)
#include $(BUILD_STATIC_JAVA_LIBRARY)
在当前项目中执行mm命令(在此之前要执行sourse build/envsetup.sh)
BUILD_JAVA_LIBRARY和BUILD_STATIC_JAVA_LIBRARY区别
BUILD_JAVA_LIBRARY编译出来的jar包,里面是DEX格式的文件,如果用户想用这个jar包放到Eclipse来做Android APP的开发,Eclipse是不认识这种格式的文件的,通常会报错:Conversion to Dalvik format failed with error 1
BUILD_STATIC_JAVA_LIBRARY编译出来的jar包,里面每个java文件对应的class文件都单独存在,顾名思义,每个java文件里面用到的变量都被静态编译到了class内部,这种格式的jar包可以在Eclipse里面导入并正常使用,但是可能存在一定的兼容性隐患
以上这篇Android打包篇:Android Studio将代码打包成jar包教程就是小编分享给大家的全部内容了,希望能给大家一个参考。
- nginx安装Fancy美化索引目录
- hdu---(3779)Railroad(记忆化搜索/dfs)
- RHEL下KVM虚拟化部署-安装虚拟化
- hdu--(1025)Constructing Roads In JGShining's Kingdom(dp/LIS+二分)
- kafka权威指南 第二章第6节 Kafka集群配置与调优
- hdu----(1677)Nested Dolls(DP/LIS(二维))
- hdu----(1950)Bridging signals(最长递增子序列 (LIS) )
- hdu------(1757)A Simple Math Problem(简单矩阵快速幂)
- python实现Tab自动补全功能
- hdu-----(2807)The Shortest Path(矩阵+Floyd)
- hdu----(4686)Arc of Dream(矩阵快速幂)
- HDU----(4549)M斐波那契数列(小费马引理+快速矩阵幂)
- Centos系统修改时区
- zookeeper思考与总结1:在其它组件的作用及hdfs对比
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- ggplot2| 绘制KEGG气泡图
- 微服务[学成在线] day03:CMS页面管理开发
- ggplot2|绘制GO富集柱形图
- 使用Prometheus监控Flink
- 微服务[学成在线] day04:页面静态化
- Spring Boot 整合Mybatis代码生成插件
- Spring Boot 配置文件
- Hello Spring Boot
- Spring Boot 整合Druid
- Spring Boot 整合JDBC
- Spring Boot 整合SpringSecurity
- jacoco-maven-plugin:prepare-agent
- 【LeetCode】两数之和
- 【LeetCode】回文数
- RestTemplate 发送 Https 请求调用