关闭

Android Studio中之打JAR包初实践

标签: android studio打jar包
1816人阅读 评论(0) 收藏 举报
分类:
   Android Studio中对于library类型的Moudle,默认打出来的是AAR包,
但有时候我们的SDK还需要共享给一些其他eclipse的项目使用(或者libs下也能放jar),这样我们就需要输出JAR包,

首先 需要设置module应用的gradle插件为 library 代码长这样:

apply plugin: 'com.android.library'

这样,build的时候,android studio 会在 module目录的build/intermediates/bundles/release/ 子目录(这个目录以后版本可能会变)里生成一个名为classes的jar包。

接着可以通过在Moudle中的build.gradle加入task来实现

task clearJar(type: Delete) {
    delete 'build/libs/rollviewpager.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('build/libs/')
    include('classes.jar')
    rename ('classes.jar', 'rollviewpager.jar')
}

makeJar.dependsOn(clearJar, build)

从这里我们可以看出先去找classes.jar后执行任务从build/libs/文件夹下面看有没有libs文件和jar,有就先删除jar,没有呢就去新建libs。

在终端执行生成JAR包


我们先来看下原始的目录文件结构


在以下目录就可以找到我们生成的JAR包,看图:


是不是多了一个jar啊,如果你的项目没用到assets等资源文件,那你直接拷贝出去就可以用了。

如果用到了,那就来个下面的操作:

利用文件依赖来打包assets。代码长这样:

compile fileTree(include: ['*.jar'], dir: 'libs')

provided files('src/main/assets')

compile 'com.android.support:appcompat-v7:21.0.3'

关键是第三行代码。还有一点一定要注意,需要在assets新建一个名为assets的目录,在这个子目录里放置你需要的文件。这样才可以哦。

如果需要混淆下代码。

proguard配置:

-libraryjars 'C:\Soft\android\adt\sdk\platforms\android-19\android.jar'

-optimizations !code/simplification/arithmetic
-allowaccessmodification
-repackageclasses ''
-keepattributes *Annotation*
        -dontpreverify
-dontwarn android.support.**
 -keep public class * extends android.app.Activity

-keep public class * extends android.app.Application

-keep public class * extends android.app.Service

-keep public class * extends android.content.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context,android.util.AttributeSet);
    public <init>(android.content.Context,android.util.AttributeSet,int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context,android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context,android.util.AttributeSet,int);
}

-keepclassmembers class * extends android.content.Context {
    public void *(android.view.View);
    public void *(android.view.MenuItem);
}

-keepclassmembers class * extends android.os.Parcelable {
    static ** CREATOR;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-keepclassmembers class * {
    @android.webkit.JavascriptInterface
    <methods>;
}

minifyEnabled设置为 true才能把assets打包进去。

好了,android studio 使用gradle 导出jar包,并打包assets目录 ,我说明白了,对吧。




2
0
查看评论

用Android studio2.3打jar包失败,没有生成相应的jar包。

使用Android studio2.3打jar包的一些问题。
  • Builder_Taoge
  • Builder_Taoge
  • 2017-04-14 11:32
  • 2983

Android Studio 2.3.1导出jar文件不能生成release解决办法

升级了AS之后,在项目中的时候,有个需求需要把通过AS导出一个模块,需要以jar的形式导出来,研究了一下,按照网上的描述操作了一遍,不知道是AS版本问题还是自己操作问题,发现使用./gradlew build之后,在/build/intermediates/bundles/文件夹下面一直生成不到网上...
  • ksksjipeng
  • ksksjipeng
  • 2017-06-30 12:18
  • 967

解决Android Studio项目bundle文件夹下没有release

月底了,不写一片凑够四篇,持之以恒勋章就没了。         这个问题应该是你想用AS打jar包出现的。         其实就是没走到这里,原因可能就是着急的新建了Library工程的Module后,没有将Lib...
  • shareye1992
  • shareye1992
  • 2016-05-26 13:59
  • 3166

android studio注意要点及常见错误

1、主项目跟他的依赖lib要放在同一个目录才能在eclipse中export2、导入eclipse中导出的项目到studio后的配置: (1)打开工作空间目录下的 gradle –> wrapper –> gradle-wrapper.properties 。修改一下内容: distr...
  • u013325929
  • u013325929
  • 2015-09-14 11:24
  • 6906

Android Studio开发过程中各种问题

1.dexDebug ExecException finished with non-zero exit value 2 全bug日志如下: (Error:Execution failed for task ':app:dexDebug'.  > com.andr...
  • life491249957
  • life491249957
  • 2016-09-20 11:08
  • 4427

Android Studio 轻松打jar 包

转载请标明出处:http://blog.csdn.net/EdisonChang/article/details/50986353有过和第三方开发者或者其他部门合作的经历,提供一个jar包sdk是一件很平常的事。Eclipse 有图形界面和向导供开发者将一个项目导出为jar包,相对来讲是比较简单的,...
  • EdisonChang
  • EdisonChang
  • 2016-05-02 14:40
  • 5344

Android Studio Library打jar包问题总结

Android Studio Library打jar
  • chunqiuwei
  • chunqiuwei
  • 2017-01-07 11:36
  • 1501

Android studio打可执行jar包

有时候像像exe那样,点一下就运行自己想要执行的代码(比如处理文件之类的),对于只学了android的我来说,写exe那是完全不会的,自然的想到了用jar包来达到目的,下面记录一下用Android studio 到可执行jar包的过程。 1. jar包 jar包分为可执行jar包和不可执行...
  • jiangchimumolu
  • jiangchimumolu
  • 2017-08-02 10:58
  • 562

Android——打包篇:Android Studio将代码打包成jar包

一、新建一个demo项目,再新建一个model模块 然后再app中的build.gradle中添加如下model的依赖。然后编译项目。 二、编译完成后,打开model下的build——intermediates——bundles目录,目录下有两个文件夹,debug,default,在default文...
  • qq_35373333
  • qq_35373333
  • 2017-07-25 10:30
  • 815

用Android Studio将library手动打成jar包

我们以这个library为例,我们要将com.halewang.library目录下的内容打成jar包                             ...
  • u013174702
  • u013174702
  • 2016-08-19 16:07
  • 1841
    个人资料
    • 访问:469308次
    • 积分:5513
    • 等级:
    • 排名:第5752名
    • 原创:97篇
    • 转载:20篇
    • 译文:1篇
    • 评论:274条
    博客专栏
    文章分类
    sina 微博
    最新评论