前言

在Eclipse中我们都知道可以选中java代码然后到处为jar包,但是现在普遍都是android studio开发,所以我们需要掌握下as的打jar包流程。
使用unity做游戏,避免不了需要和android和ios交互,有些android的sdk在接入时,我们每次打包都需要导出as中,然后修改java代码,但是如果直接把工具代码导出jar包,那么就非常方便了,接下来是详细教程。

步骤

  • 1.先把unity的项目到处gradle工程,然后用as打开。这里untiy我是用的2018.4.0版本,但是这个对于unity版本没有限制。
  • 2.使用as打开后如图所示
  • 3.在项目中新建一个module,(步骤:File->New->New Module->Android Library)
  • 4.定义好library的工程名和包名
  • 5.新建完成后如图所示

  • 6.在library的src/main/java下写需要打包的工具类,因为打包实际打的就是这个library中的脚本,不是主工程的脚本。
    比如Unity导出的工程,library工程中的脚本可能会依赖unity-classes.jar等文件,理论上module和主工程可以相互依赖,但是unity主工程可以引入module工程,但是module无法引用主工程,这时可以把这个jar包从主工程拷贝到library中一份,然后在library的build.gradle中的dependencies中添加一句引用
//implementation改为api,代表开放引用,因为主工程和library工程中各有一个jar文件api files('libs/unity-classes.jar')
  • 7.打开library中的build.gradle文件,在最后添加脚本。
    mysdk.jar 就是到处的jar包名称,可以自行修改。
task makeJar(type: Copy) {//删除老包    delete 'build/libs/mysdk.jar'    //设置拷贝的源文件,记得去找下路径,版本不同路径可能不同    from('build/intermediates/packaged-classes/release/')    //jar包的打包路径    into('build/libs/')    //include和exclude参数可以设置过滤文件    include('classes.jar')    //给jar重命名    rename('classes.jar', 'mysdk.jar')}makeJar.dependsOn(build)
  • 8.最后一步是打包了,打开Terminal命令窗口,在as的下边
    输入命令:gradlew makeJar

    理论上,这是可以一步打出jar的,最后弹出Build Success语句

    但是也会根据你的sdk或者代码的问题报不同的错,在你的Terminal中会有相应的提示,你需要根据提示进行修改
    比如我就有提示说要我在android{}中添加语句块
lintOptions {        abortOnError false    }

总之到这一步出的错误都是你自己的工程的问题了。比如包的依赖问题,jar包的依赖问题等,你只要检查下你的脚本没有错误,然后根据Terminal中的提示进行修改个别地方,应该就没有问题了。

  • 9.打jar包成功后,可以在library的build/libs目录下找到你的jar,然后你就可以把这个jar包复制到任何需要使用的地方。

    最后,祝你成功。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. AttributeSet自定义控件方法
  3. kotlin Anko的实际用法
  4. 史上最详细创建 Android(安卓)AIDL 远程服务的步骤
  5. Android截图代码实现
  6. Android菜单设计(2) : options menu使用注意事项
  7. Android(安卓)For JNI(六)——交叉编译,NDK概述以及文件结构,编写
  8. 移动终端高级开发工程师
  9. Android(安卓)---- WebView与JavaScript交互调用(1)

随机推荐

  1. form表单在PHP中的实现方式
  2. 利用for循环实现excel中多列数据合并到一
  3. PHP 常用命令行
  4. PHP实时生成并下载超大数据量的EXCEL文件
  5. PHP中opendir的用法
  6. php://output和php://stdout的区别
  7. php中获取当前时间的函数
  8. php注释的作用
  9. php编译安装扩展redis及swoole
  10. php的闭包是干嘛的