需求条件:

自己没做过android,公司android开发临时有事请假了,老板说让我研究研究,反正都是java。我心里“XXXXXX”。这篇用来自己做个记录,老手请略过,Android新手临时替岗而已。前提是自己的类中含有用到Android的类库

解决方案:

这module新建的时候选择,不要选择"Java Library"而要选择"Android Library",然后利用引入依赖后,用打包脚本排除相关类就可以了。Gradle的build脚本示例:

apply plugin: 'com.android.library'android {    compileSdkVersion 28    publishNonDefault true    defaultConfig {        minSdkVersion 15        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support:appcompat-v7:28.0.0'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'    /*新增*/    implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.1.6'    implementation 'com.google.code.gson:gson:2.6.2'}//Copy类型task makeJar(type: Copy) {    //删除存在的    delete '/libs/JXSDK.aar'    //设置拷贝的文件    from('/build/intermediates/packaged-classes/release/')    //打进jar包后的文件目录    into('/libs/')    //将classes.jar放入build/libs/目录下    //include ,exclude参数来设置过滤    //(我们只关心classes.jar这个文件)    //过滤不需要的class    exclude "**/**/BuildConfig.class"    exclude "**/**/BuildConfig\$*.class"    exclude "**/R.class"    exclude "**/R\$*.class"    include('classes.jar')    //指定打包的class    include "com/test/**/*.class"    //重命名    rename ('classes.jar', 'JXSDK.jar')}makeJar.dependsOn(build)

注意要点:

1、最新情况,最新版本3.2.1的Android Studio中已经将“bundles”文件夹改为了“packaged-classes”文件夹,网上教程过时了

2、打包脚本中可以用“gradlew build”在“output”文件夹中生成aar格式的包,如果需要也可以用

3、打包脚本中可以用“gradlew makeJar”在执行gradle的打包脚本任务的时候,目录一定要按照自己的目录配置,Android的目录约束好像会变!

4、如果现有程序中新建module,如果android版本不一致会有问题,这个时候最好新建一个项目将需要打包的类做个迁移

5、打包过程中如果两个module的“AndroidManifest.xml”文件中的包名相同会报错,最好设置不同报名

6、Android的依赖管理在module之间如果不引用是独立的,每个module的“gradle.build”文件中都可以单独定义“dependencies”并且打包路径也是相对于当前module的路径

7、其他有的打jar包教程中说的需要在默认app项目的“gradle.build”中添加“compileproject(':sdk')”,现在要改为“implementation project(':sdk')”才可以

纯手打发泄一下情绪,也希望对其他人有帮助转载请注明出处!

转载于:https://www.cnblogs.com/jpfss/p/9883200.html

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 修改Android中hosts文件的步骤详解
  6. Android获取手机中外置内存卡、内置内存卡、手机内存路径
  7. 生成release版本的Android系统
  8. ADB使用方法及常用命令
  9. Android(安卓)jni编译时 Android.mk文件 规范说明

随机推荐

  1. 在android中玩转wcf
  2. Android入门教程(九)之-----取得手机屏幕
  3. android 监听电源键
  4. android 监听webview的超链接点击
  5. Android获取应用程序信息——PackageMana
  6. 銆婄涓€琛屼唬鐮丄ndroid銆嬬瑪璁?/h1
  7. Android(安卓)ContentResolver CallLog
  8. 《Android高级进阶》— Android 书籍
  9. 安卓基础学习 Day01 |第一个安卓应用程序
  10. Android应用程序发送广播(sendBroadcast)的