您的当前位置:首页正文

AndroidStudio导出jar包走过的坑

来源:要发发知识网

最新进展

::发现了,在Ubuntu16.04下,开两个项目的时候就跑步起来,把另一个AS关掉就可以了。。。

虽然执行Build还是不能生成class.jar,但是现在执行app下makeJar可以生成了。。。


  1. 编辑Gradle生成任务
//这是放在module的build.gradle的最外层
task makeJar(type: Copy) {
    delete 'build/libs/wxpaysdk.jar'
    from('build/intermediates/bundles/release/')
    into('build/libs/')
    include('classes.jar')
    rename ('classes.jar', 'wxpaysdk.jar')
}
makeJar.dependsOn(build)
  1. 执行任务
    在执行任务时会一直卡在那里;我们的Gradle任务脚本其实是先build整个项目,系统会在build/intermediates/bundles/release/目录下生成class.jar,而我们创建的任务就是要把这个jar包copy到build/libs/目录下并重命名。
    通常任务执行不下去是因为Build项目时我们生成的是debug而不是release

解决方法:

  1. 选中module app
  2. Build->Select Build Variant->release
  3. Build
    在release目录下有class.jar生成即可。

当选择release mode之后,build/intermediates/bundles/release/ 目录下生成的文件及文件夹有:
AndroidManifest.xmlR.txtaapt/aidl/assets/
但是选择debug mode之后,build/intermediates/bundles/debug目录下生成的文件及文件夹有:
AndroidManifest.xml
R.txt
aaptaidlassetsclasses.jarres
如何在release mode下,也能生成出classes.jar文件?
看看你的build.gradle

buildTypes { 
  release { 
    inifyEnabled true  proguardFiles getDefaultProguardFile('proguard-rules.pro'), 'proguard-rules.pro'  
  }
}

这个里面是否指定了
proguardFiles路径,如果指定了 删除就可以了

然而这对我并不起效。。。。

慢慢找吧,先用debug