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)

代码解释:

  1. 这是一个任务,功能是完成一个数据拷贝工作
  2. 编译jar的路径:build/libs/
  3. build/intermediates/packaged-classes/release/下面的文件拷贝到build/libs/
  4. 对于不同的AS 版本,gradle构建class.jar的路径不同。笔者AS版本3.2,class.jar的路径build/intermediates/packaged-classes/release/
  5. 其他可能路径build/bundles/releasebuild/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进行数据操作;

更多相关文章

  1. Android笔记 - Android启动之Android(安卓)Framework启动
  2. 【React Native开发】React Native For Android环境配置以及第一
  3. Android(安卓)Studio开发之 JNI 篇的简单示例
  4. android 导出jar包并使用
  5. Android:Service:AIDL实现进程通信
  6. Eclipse Android项目导入Android(安卓)Studio时常见的编译错误及
  7. 玩转Android---2D图形及动画---图片处理
  8. Android自学笔记(番外篇):全面搭建Linux环境(一)——前期准备工作
  9. Android(安卓)adt 初步理解和分析(二)

随机推荐

  1. android 自定义提示弹窗效果
  2. android定制对话框
  3. Android第一个程序 Hello World
  4. flutter常见问题
  5. 参考注释郭霖老师的Android相机程序
  6. ch07 Android 日期与时间对话框
  7. Android的SwitchCompat和Switch
  8. Android Studio App LinearLayout多层布
  9. android细节知识小点(动态更新)
  10. android 获取网络上服务器图片