Android Studio 生成jar包
2016-08-04 19:24
399 查看
生成jar包,目前掌握两种方法,后续可能继续更新。
第一种通过gradle生成jar包,生成的jar包只有源代码的.class 文件不含资源文件。
1. 新建一个modle类型为library
2. 在该library的gradle中加入如下代码
3. 在terminal下输入一下命令
//在终端执行生成JAR包
gradlew makeJar
4. 执行完在library>build>libs>下会发现产生了改jar包
5. 特别提醒:在主工程App的build中要加入librarydemo 这个依赖model:
第二种方法:包括资源文件的打包方式,开发时要导出sdk给别人使用就要用这种方式了
与eclipse不同,android studio 1.0 没提供导出jar包的图形界面。需要结合gradle来生成jar包。
首先 需要设置module应用的gradle插件为 library 代码长这样:
这样,build的时候,android studio 1.0会在 module目录的build/intermediates/bundles/release/ 子目录(这个目录以后版本可能会变)里生成一个名为classes的jar包。
如果你的项目没用到assets等资源文件,那你直接拷贝出去就可以用了。
如果想拷贝到outputs目录的话,在module的build.gradle里添加以下代码:
如果你和我一样,还需要把assets目录打包到jar包的话,请继续往下看。
这地方用了一个非主流的方式打包assets。就是利用文件依赖来打包assets。代码长这样:
关键是第三行代码。还有一点一定要注意,需要在assets新建一个名为assets的目录,在这个子目录里放置你需要的文件。这样才可以哦。
还没完,不知道啥原因,只有minifyEnabled设置为 true才能把assets打包进去。没有去深究,反正我也需要混淆下代码。
好了,android studio 使用gradle 导出jar包,并打包assets目录 ,我说明白了,对吧。
另附 proguard配置:
第一种通过gradle生成jar包,生成的jar包只有源代码的.class 文件不含资源文件。
1. 新建一个modle类型为library
2. 在该library的gradle中加入如下代码
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">task makeJar(type: Copy) { <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">delete</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'build/libs/mysdk.jar'</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">from</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'build/intermediates/bundles/release/'</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">into</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'build/libs/'</span>) <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">include</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'classes.jar'</span>) <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">rename</span> (<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'classes.jar'</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'mysdk.jar'</span>) } makeJar.dependsOn(build)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"> </span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>
3. 在terminal下输入一下命令
//在终端执行生成JAR包
gradlew makeJar
4. 执行完在library>build>libs>下会发现产生了改jar包
5. 特别提醒:在主工程App的build中要加入librarydemo 这个依赖model:
第二种方法:包括资源文件的打包方式,开发时要导出sdk给别人使用就要用这种方式了
与eclipse不同,android studio 1.0 没提供导出jar包的图形界面。需要结合gradle来生成jar包。
首先 需要设置module应用的gradle插件为 library 代码长这样:
apply plugin:
'com.android.library'
这样,build的时候,android studio 1.0会在 module目录的build/intermediates/bundles/release/ 子目录(这个目录以后版本可能会变)里生成一个名为classes的jar包。
如果你的项目没用到assets等资源文件,那你直接拷贝出去就可以用了。
如果想拷贝到outputs目录的话,在module的build.gradle里添加以下代码:
如果你和我一样,还需要把assets目录打包到jar包的话,请继续往下看。
这地方用了一个非主流的方式打包assets。就是利用文件依赖来打包assets。代码长这样:
关键是第三行代码。还有一点一定要注意,需要在assets新建一个名为assets的目录,在这个子目录里放置你需要的文件。这样才可以哦。
还没完,不知道啥原因,只有minifyEnabled设置为 true才能把assets打包进去。没有去深究,反正我也需要混淆下代码。
好了,android studio 使用gradle 导出jar包,并打包assets目录 ,我说明白了,对吧。
另附 proguard配置:
<code class="hljs rust has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">dependencies { compile fileTree(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">dir</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'libs'</span>, include: [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'*.jar'</span>]) compile <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'com.android.support:appcompat-v7:22.2.0'</span> compile project(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">':librarydemo'</span>) }</code><code class="hljs rust has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> </code><code class="hljs rust has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> </code><code class="hljs rust has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">第二种方法参照之前的博客</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; position: absolute; width: 105px; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="color: rgb(202, 0, 0); box-sizing: border-box;"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="border: none; box-sizing: border-box; max-width: 100%;" alt="" /></a></div><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0
相关文章推荐
- Android Studio中生成aar之包括*.jar,*.aar和*.so文件
- android studio 将自己的项目生成jar包
- Android studio 导入类库,生成jar、aar,加载jar、aar
- Android Studio 生成自定义jar包的步骤详解
- Android Studio 生成 jar 及jar和aar的区别
- [Unity与Android Studio交互] 快速生成正确的jar库(图文解释)
- Android studio中生成引用.aar和.jar的方法详解
- android studio 生成jar包和aar包
- [Android Studio] *.jar 与 *.aar 的生成与*.aar,jar,第三方库项目导入项目方法
- [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
- [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法(转)
- android studio环境下生成jar
- android studio生成jar包
- 使用android studio生成jar包
- Android studio 2.3.3 生成.jar包
- Android Studio 如何生成jar包
- 利用android studio2.1.2生成jar,制作自己的SDK
- [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
- Android Studio 如何生成jar包
- android studio 生成jar包方法