Android(安卓)Studio编译jar架包必看
16lz
2021-01-24
Android Studio编译jar架包必看
公司Unity项目和Android项目交互需要Android端打包一个Jar架包,之前是Eclipse工程的,可以直接导出Jar包 。但是现在Android Studio已经成为Android主流开发工具,所以也有必要把Library项目迁移到AS中。AS中的确没有Jar导出功能,但是通过编译过后的library项目的build中是有jar包的。
一.先决条件
项目是Library项目;
即module中是library插件而不是 Application apply plugin: 'com.android.library'
二.gradle代码
因为gradle在构建的时候,会对这个模块的class文件先打包成classes.jar并放在build/intermediates/packaged-classes/release/
。于是我只需要把它拷出来,并重命名就可以了。
task makeJar(type: Copy) { //删除旧的jar包 delete 'build/libs/mysdk.jar' //原地址 from('build/intermediates/packaged-classes/release/') //导出jar包的地址 into('build/libs/') //包含的jar包 include('classes.jar') //重命名jar包为mysdk rename ('classes.jar', 'mysdk.jar')}makeJar.dependsOn(build)
代码解释:
- 这是一个任务,功能是完成一个数据拷贝工作
- 编译jar的路径:
build/libs/
- 把
build/intermediates/packaged-classes/release/
下面的文件拷贝到build/libs/
; - 对于不同的AS 版本,gradle构建class.jar的路径不同。笔者AS版本3.2,class.jar的路径
build/intermediates/packaged-classes/release/
- 其他可能路径
build/bundles/release
,build/intermediates/classes/
可以去尝试,如果实在否不可以,建议把Build文件夹下面都搜索一下,找到classes.jar所在文件夹,替换上面的from
的地址
三.注意事项
1.jar只能打包java文件,不包括项目引入的其他so文件,aar文件和jar文件;
2.可以使用aar的情况下尽量不使用jar
3.Unity与Android的最佳交互方式:工程A用于处理数据,引用所有操作数据的架包;Library工程B用于与Unity交互,通过ContentProvider与G工程A进行数据操作;
更多相关文章
- Android笔记 - Android启动之Android(安卓)Framework启动
- 【React Native开发】React Native For Android环境配置以及第一
- Android(安卓)Studio开发之 JNI 篇的简单示例
- android 导出jar包并使用
- Android:Service:AIDL实现进程通信
- Eclipse Android项目导入Android(安卓)Studio时常见的编译错误及
- 玩转Android---2D图形及动画---图片处理
- Android自学笔记(番外篇):全面搭建Linux环境(一)——前期准备工作
- Android(安卓)adt 初步理解和分析(二)