2

Created a Kotlin MPP for developing a JS library, and a JVM lib. Everything worked well in the Kotlin world and I was able to build the project. Once build was completed the distributions folder(inside build) had the projectName.js file and projectName.js.map file.

I created an HTML using this js and tried opening in a browser and its throwing the following error.

The HTML:

<html lang="en"><head>
    <meta charset="UTF-8">
    <title>Hello, Kotlin/JS!</title>
</head>
<body>
<script src="projectName.js"></script>
</body></html>

The error:

Uncaught TypeError: Cannot read properties of undefined (reading 'prototype')
    at Object.i (projectName.js:10)
    at Object.<anonymous> (projectName.js:10)
    at n (bootstrap:19)
    at Object.<anonymous> (projectName.js:10)
    at n (bootstrap:19)
    at Object.<anonymous> (projectName.js:10)
    at n (bootstrap:19)
    at bootstrap:83
    at projectName.js:1
    at universalModuleDefinition:9

My distributions folder just has the 2 files mentioned above. Can someone help me understand what is wrong? Are there any other js files that I should add to my HTML ? Or anything more that I should do?

Adding build.gradle

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

plugins {
    id 'org.jetbrains.kotlin.multiplatform'
    id 'com.android.library'
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.5.20'
}

kotlin {
    android()
    js {
        browser()
        binaries.executable()
    }
    sourceSets {
        commonMain {
            dependencies {
                implementation "io.ktor:ktor-client-core:$ktor_version"
                implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
                implementation "com.ionspin.kotlin:bignum:0.3.1"
                implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2"
            }
        }
        commonTest {
            dependencies {
                implementation kotlin('test-common')
                implementation kotlin('test-annotations-common')
            }
        }
        androidMain {
            dependencies {
                implementation 'com.google.android.material:material:1.2.1'
                implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinx_coroutines_version"
                implementation "io.ktor:ktor-client-android:$ktor_version"
            }
        }
        androidTest {
            dependsOn(androidAndroidTestRelease)
            dependencies {
                implementation kotlin('test-junit')
                implementation 'junit:junit:4.13'
            }
        }
        jsMain {
            dependencies {
                implementation "io.ktor:ktor-client-js:$ktor_version"
            }
        }
    }
}

android {
    compileSdkVersion android_compile_sdk_version as Integer
    sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
    defaultConfig {
        minSdkVersion android_min_sdk_version as Integer
        targetSdkVersion android_target_sdk_version as Integer
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
        }
    }
    packagingOptions {
        exclude 'META-INF/*.kotlin_module'
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

Please help !

vizsatiz
  • 1,933
  • 1
  • 17
  • 36

0 Answers0