Android问题12:生成独立库Jar

第一步、首先要创建一个Moudle,修改对应的Gradle文件;

//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        //删除applicationId这一项;
        //applicationId "com.trapdp"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 190
        versionName "1.0.0.7"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

修改完成后,该项目的图标应该会变成这样(文件夹+柱状图样式的图标):

 第二步、继续修改Gradle文件,在后面添加编译为jar的配置

//生成jar关键的部分;下面的makeJar1是自命名的;
task makeJar1(type:Copy){
    //删除已经存在的;这个jar1.jar文件名也是可以随便修改的,下述用到的地方相同即可;
    delete('build/outputs/jar1.jar')
    //设置复制文件的位置(这个文件夹的后面,好像可以随便修改)
    //如:from('build/intermediates/packaged-classes/debug/')
    from('build/intermediates/packaged-classes/release/')
    //生成jar的文件夹(位置)
    into('build/libs')
    //目标文件,classes.jar这个文件名好像是固定的,不能随便改;
    include('classes.jar')
    //将目标文件复制为我们想要的文件名(jar1.jar);
    rename('classes.jar','jar1.jar')
}
//这里的makeJar1同上面命名
makeJar1.dependsOn(build)

第三步、编译jar;

编译的方法有2种,其一是命令模式,其二是鼠标操作;

方法一:点击下方的Terminal,在命令行输入指令:

//后面的makeJar1就是上面Gradle里task后配置的名称;
gradlew makeJar1

网上大部分的大神们都说可以编译成功,我试了一直报错,不知道是哪里没搞对。放弃了。

方法二:在AS的右侧上部,有一个Gradle的小小的标签,点击一下,打开侧边栏,找到Jar1项目,在Tasks\Other\下面找到makeJar1,双击即可编译完成;

如果项目下没有Task一项,需要在File\Setting里面设置一下,据说是AS自动隐藏了,很操蛋。我也是在这里被卡了好久(大部分情况下,这个也确实用不上)。

编译完成后,就可以在build/libs下面找到对应的jar文件。

第四步、在其他项目中引用jar;

将jar文件复制到其他项目的libs文件夹,并在项目中引用即可;

方法一:在Gradle文件中修改,在dependencies{}块内附加一行;

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    //引用jar文件;
    implementation files('libs\\lab1.jar')
    //引用同项目中的模块
    //implementation project(path:'模块名称')
}

方法二:

在File\Project Structure里,为该项目添加引用(jar/aar)。

 在弹出的引用框中,输入文件名,点击OK即可;

方法三:在左侧文件列表框里找到libs文件夹,点击要引用的jar文件,右键 ,在菜单下部分,点击 Add As Libary即完成引用;

如果文件列表中没有Libs文件夹,应该是显示方式问题,由Android改为Project显示;

改为

这样,libs就显示出来了;

为了这个编译jar,弄了半天,网上介绍这个功能的文章很多,就是没有全面介绍的,Android的坑多,不熟悉的就是差这样差那样的,总是不能一步到位解决问题。

感谢网上大神们的相关文章;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值