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
    }

 

你可能感兴趣的:(kotlin,Android)