将Kotlin运行时库添加到android中的aar

问题描述 投票:0回答:2

我想要的:smile::

建立科特林图书馆,作为.aar文件交付使用.aar的Java项目无需进行任何配置,只需添加.aar即可开始播放。第一问:还有可能吗?因为我失去了希望:微笑:

如果使用我的图书馆的项目未配置Kotlin,则显示ClassNotFoundException。

-为什么?

如果kotlin与Java字节码具有相同的字节码,(并且100%兼容),

然后为什么在JAVA项目中使用用kotlin写的.aar时需要有kotlin?

经过一番重新研究,我发现我必须在项目中包含kotlin运行时库,但我不知道如何,我已经准备好基本上所有解决方案都可以通过网络进行,

我认为Android不支持fat aar,

谢谢大家的关注。

更新在我的aar项目中,我有一个带有以下build.gradle的模块

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android' 

/////
.
.

dependencies {
////
.
.

    api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

}

在我的使用.aar的应用程序中我在build.gradle项目中有以下内容

 dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }


在build.gralde模块中

    implementation(name: 'my-aar-library', ext: 'aar')

并且当我运行该应用程序时,它崩溃了,这里是堆栈:


09-25 15:14:22.814 3239-3239/com.example.mymodule E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mymodule, PID: 3239
    java.lang.NoClassDefFoundError: kotlin.jvm.internal.Intrinsics
        at com.com.example.mymodule.views.MyCustomView.<init>(PCMajorHeadereView.kt)
        at .
    .
    .
    .
    .
    .

UPDATE 2:PS:

显然,我必须将kotlin运行时库添加到我的.aar我在网上尝试了所有,但没有用:'(

android gradle kotlin android-library aar
2个回答
1
投票

build.gradle文件中调用以下对smile.aar文件的调用。

implementation project(':smile)

假设微笑是.aar文件名。

如果要运行Kotlin,必须在项目build.gradle中包括以下内容:>

buildscript {
    ext.kotlin_version = '1.3.31'
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

并且还将它们包含在应用程序级别build.gradle中

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'


//in dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

0
投票

问题是您的aar不包含依赖关系树(.pom文件),因此Gradle在同步期间无法下载它们。

© www.soinside.com 2019 - 2024. All rights reserved.