Android项目使用Kotlin语言生成Jar包 给非Kotlin项目引用

//添加以下方法
//执行 gradle -> wifisdk -> Tasks -> other ->makeKotlinJar
//在 build/libs 目录下生成 makeKotlinJar.jar 文件
// 这种方式生成的jar文件如果被kotlin app项目引用,则会出现kotlin库重复的错误,所以生成的jar
task makeJar(type: Jar) {
    archiveName 'wifisdkn_7_4_2.jar'
    //添加项目中java生成的class文件目录
    from('build/intermediates/classes/release/')
    //添加项目中kotlin生成的class文件目录
    from('build/tmp/kotlin-classes/release')
//    from(project.zipTree("libs/wiwide_sdk_7_4_1.jar"))

//    添加Kotlin库(方法1)
    from {
        String[] include = [
                "kotlin-runtime-${kotlin_version}.jar",
                "kotlin-stdlib-${kotlin_version}.jar"
        ]
        configurations.compile
                .findAll { include.contains(it.name) }
                .collect { it.isDirectory() ? it : zipTree(it) }
    }
    //    添加Kotlin库(方法2)
    //添加kotlin项目库(库文件从引用中查找,并复制到"libs/o/"目录)
    //如果生成的jar包要给Kotlin项目引用,则删除以下三行即可.
//    from(project.zipTree("libs/o/kotlin-stdlib-1.2.10.jar"))
//    from(project.zipTree("libs/o/kotlin-stdlib-jre7-1.2.10.jar"))
//    from(project.zipTree("libs/o/annotations-13.0.jar"))

    //makeKotlinJar.jar保存目录
    destinationDir = file('build/libs')

//    exclude('wiwide_sdk/BuildConfig.class')
//    exclude('包名/BuildConfig\$*.class')
//    exclude('**/R.class')
//    exclude('**/R\$*.class')
    exclude('android/**')

    //以下为此处第三方库需包含文件(gson、okhttp、okio)
//    include('com/**')
//    include('org/**')
//    include('kotlin/**')
    include('**/**')
//    include('okhttp3/**')
//    include('okio/**')
}
makeJar.dependsOn(build)

如果遇到错误,在android区间中添加以下配置

 

android {
    lintOptions {
        abortOnError false
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值