Android Studio 将自己的SDK项目生成jar包给Unity使用

 

很多情况下我们开发的项目不是一个完整的app,而是完成一部分功能,供别人的app使用的情况。这时就需要将我们的项目打包生成jar或者arr库文件,让别人的app导入我们的jar包,就能直接使用我们项目中封装的功能,例如,我们常用的v4,v7包,网络请求包httpClient等等,都是作为我们app功能的一部分引入的,这种站在巨人的肩膀上开发的模式很大程度上提升了我们的工作效率,避免了我们再重写写一遍别人已经实现了功能的代码。

最近一个做一款Unity的项目,需要接第3方SDK。创建了一个demo,实现了基本的功能,现在需要把整个工程打包成jar文件提供给app开发人员调用。网上搜索了一通资料发现都是从library生成jar包的情况,没有直接重项目生成jar包的例子,经过自己摸索一番,将过程展现给大家,有需要的童鞋可以参考下

既然可以从library生成jar包,我们的思路还是先将我们的项目作为library供别的项目依赖,然后再获得jar包。

1、先将自己的项目改为library,在app下的build.gradle(主项目的build.gradle

非依赖工程的build.gradle(通常不修改工程名字的话值得是app下的gradle文件如下图1))下修改application为library(注意这一步必须有,否则无法导出jar文件)

 

Android Studio 将自己的SDK项目生成jar包给Unity使用_第1张图片

 

 

2、再将applicationId注销(注意这一步必须有,否则无法导出jar文件)

 

3、sync 一下

好了现在你的项目就可以作为Module导入到任意一个工程里了(如果有现成的项目工程,并且想把整个项目导成jar文件则可以直接修改上图中的build.gradle文件就可以了,下面是第4步和第5步是只导出指定的Module成为jar包如果有需求可以参照4、5两步操作(当然这些是别人的经验,我试过是可以导出jar文件,不过不是我想要的,而且这样导出,对制作UnitySDK的程序猿来说比较麻烦,所以下面我会指出另外的方式导出jar包,测试通过了)

4、我们随意新建一个工程,比如MyLibraryTest,然后将我们刚生成的module导入

路径选择我们刚才生成library的项目的位置,

 

导入进来后直接运行项目,就可以在我们Module下的build/intermediates/bundles/debug下得到我们需要的jar包

5、将jar包复制出来,改下名字就行了

 

 

6. 步骤1:将最前面的apply plugin: 'com.android.application' 修改为apply plugin: 'com.android.library'的版本可以根据自己的版本来改 步骤2:再将applicationId注销  。这些执行完后完成一下操作:

(1). 在build.gradle最后加上

task deleteOldJar(type: Delete) {
delete 'build/outputs/test.jar'
}

task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/libs/')//(如果你没有这个目录则文件就不能复制到这里了反正我是在from指定的路径下找到我要导出的jar文件的
include('classes.jar')
rename ('classes.jar', 'test.jar')
}

exportJar.dependsOn(deleteOldJar, build)

其中是要到处的路径,这个可以自定义,rename里的test.jar是要到处的jar包的名字,也是自定义的。 

这些修改完后就是一下可视化操作了。 

(2).打卡Gradle 

Android Studio 将自己的SDK项目生成jar包给Unity使用_第2张图片

   

(3).打开app->Tasks->other->exportJar 

Android Studio 将自己的SDK项目生成jar包给Unity使用_第3张图片

   

然后双击exportJar就可以了。 

注:如果是第一次导出,可能需要很久,因为Android Studio需要下载一些文件,之后就会很快了。 

运行成功就会显示 

好了,是不是很easy啊,本人亲自再将jar包导入其他的项目,调用jar包中的方法可以访问到,说明此方法可行。

你可能感兴趣的:(Uinty3D,AndroidSDK)