您的位置:首页 > 移动开发 > Android开发

android studio 开发jar包的一般步骤及可能遇到的问题(包含AS升级到3.1版本)

2018-02-28 17:45 1321 查看
    Android Studio版本升级到3.1版本后,下面使用的生成jar的方法会失败,这个是因为bundles文件夹好像不存在了换成intermediate-jars文件夹,所以相应的替换这个目录文件其他的不用改变就行了,关于jar生成时如何直接添加版本号的问题,这个每个人都有不同的方法,我使用的是在根目录的build.gradle中设置一个公共参数versionName,然后每个module都可以去引用这个,这样也可以保证一个工程中所以的module都是统一的versionName,具体设置见文章末尾。
---------------下面是升级到AS 3.1之前的方法-------------------
    Android library的结构跟Android app module一样。它里面可以包含:源码,资源文件和Android manifest文件。不同的是Android Library会编译成Android Archive(AAR),也就是aar文件,而Android app会编译成APK文件。创建一个Library module的流程如下:
点击 File > New > New Module
在Create New Module窗口,点击Android Library, 然后点击Next. 
这里也有创建Java Library的选项,Java Library会编译成一个JAR文件。当你想在不同的平台之间共享代码的时候,Java Library非常有用。Java Library不能共享Android资源文件和manifest文件,只能共享代码。
给Library输入名字,选择一个最小支持的SDK版本,然后点击Finish.
提示:如果只是生成不包含Android相关的资源文件的jar包,还是建议创建Java Library,这样在给第三方调用的时候就不会出现主module和依赖的jar包中的targetSdkVersion版本不一致的时候报Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed with multiple errors, see logs这个错误,这也造成了适配上的问题,这个肯定是不可取的;如果是aar的话那就没有办法了,只能解决适配的问题
创建一个module后,在项目中会依赖这个module(app->bulid.gradle->dependencies->implementation Projece(':librarydemo')),在module中随便新建一个类,下面的步骤开始讲解生成jar的过程:
在librarydemo工程下的build.gradle中加上:



上面test.jar的文件名根据自己的需要自定义,然后打开Terminal窗口,mac系统的话命令行输入./gradlew makeJar(我之前一直没有添加./造成总是报bash: gradlew: command not found错误),Windows系统的话可以试试不带./命令行。第一次执行是有点慢,耐心等待下,执行结果出现BUILD SUCCESSFUL ,表示执行成功了


这个jar就可以拷贝到你想使用的项目中了。关于mac遇到的bash: gradlew: command not found错误提示,可以通过下面这个方法进行解决http://blog.csdn.net/u013424496/article/details/52684213
----------------------分割线-下面是文章开头要表述的内容-----------------------在根目录中的build.gradle文件末尾可设置如下代码ext{    versionName = "1.0.0"}然后在需要引用这个设置的地方用rootProject.ext.versionName就可以了,所以生成jar的时候,关于版本号的设置可以替换为:rename('classes.jar','test_v' + rootProject.ext.versionName + '.jar')这样就可以自动生成不同版本的jar了 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息