【问题标题】:Kotlin module sources not packaged in aar未打包在 aar 中的 Kotlin 模块源
【发布时间】:2020-02-29 18:01:34
【问题描述】:

我正在用 Java 构建一个 Android 库 (aar)。 我想向它添加一个 Kotlin 模块。它在开发时工作得很好,但是 .aar 文件中缺少模块的源代码,因此它在应用程序中运行时使用 FileNotFoundException 崩溃。

主模块build.gradle如下所示:

apply plugin: "com.android.library"
apply plugin: "com.jfrog.artifactory"
apply plugin: "maven-publish"

...

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    implementation project(':kotlinModule')
    ....
}

模块的三个build.gradle是:

apply plugin: 'java-library'
apply plugin: 'kotlin'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

sourceCompatibility = "7"
targetCompatibility = "7"

我已尝试添加源集,但显然您无法从模块文件夹之外添加源集。 我尝试将kotlinModule.jar 文件复制到libs 文件夹中,但是每次更改模块时都需要重新构建。 如何将模块的源代码捆绑到 .aar 文件中?

【问题讨论】:

    标签: java android kotlin android-library aar


    【解决方案1】:

    如果你想添加 kotlinModule.aar 文件,那么你需要在你的 android 标签内的 Gradle 配置中添加一些配置

    android {
            repositories {
                flatDir {
                    dirs 'libs'
                }
                jcenter()
            }
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_7
                targetCompatibility JavaVersion.VERSION_1_7
            }
    }
    

    另外,在 Gradle 依赖项中添加 .aar 文件名

    dependencies {    
         implementation name: 'kotlinModule', ext: 'aar'        
    }
    

    【讨论】:

    • 我已经在问题中回答了这个问题:“我尝试将 kotlinModule.jar 文件复制到 libs 文件夹中,但每次更改模块时都需要重新构建。”跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多