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了
---------------下面是升级到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了
相关文章推荐
- 用JS判断浏览器是否是IE9以下,处理可能遇到的兼容性问题,或者给出浏览器版本过低的升级提醒。
- Android Studio 开发常遇到的SDK版本的问题
- Android studio 之 打包 model 成 jar (xutils 数据库升级版本校验问题)
- Android Studio 2.3.*升级到3.0遇到的问题和解决版本
- android studio 版本升级及迁移遇到的问题
- Git(Android Studio)项目提交更新到github详细步骤及可能遇到问题
- resin3.0升级到3.1版本遇到的问题
- Android开发随手记录-AS导出jar包 Android Studio生成包含assets的Jar 从Eclipse迁移到Android Studio,并打包指定文件到jar
- Git(Android Studio)项目提交更新到github详细步骤及可能遇到问题
- 2016 cocoapods的安装和使用方法以及版本升级遇到的问题
- CE开发中可能遇到的问题(一)
- 今天使用eclipse-hilos版本的开发项目遇到一些问题
- Android开发时 adb shel l的使用可能遇到的问题
- CUnit开发环境搭建过程可能遇到的一些问题及解决方法
- Android综合下载系统的开发步骤以及遇到问题
- [android开发笔记]android中导入版本不一致的project可能会遇到的编译问题
- CE开发中可能遇到的问题
- flash/flex/as3应用程序加载as2、as1版本的swf遇到的问题
- 使用SourceSafe管理软件开发可能遇到的问题及解决方法
- 升级CentOS 5.3遇到Python版本不匹配问题?