https://kotlinlang.org logo
#multiplatform
Title
# multiplatform
e

eloew

10/19/2019, 11:33 AM
How to reference items from “android.app” and “android.util” (like Application or Log) in SharedCode/androidMain?
r

russhwolf

10/19/2019, 11:49 PM
How are you configuring it? Make sure you use an
android
target and not a
jvm
one.
e

eloew

10/20/2019, 9:33 AM
Think I using an android target. My Shared code build.gradle looks like this:
"'apply plugin: 'kotlin-multiplatform' apply plugin: 'kotlinx-serialization' apply plugin: 'com.squareup.sqldelight' kotlin { targets { //final def iOSTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos") ? presets.iosArm64 : presets.iosX64 /* // iPhone simulator : presets.iosX64 // real iDevice 32 bit : presets.iosArm32 // real iDevice 64 bit : presets.iosArm64 */ //def iOSTarget = presets.iosArm64 //Device def iOSTarget = presets.iosX64 //Simulator fromPreset(iOSTarget, 'iOS') { binaries { framework('SharedCode') } } fromPreset(presets.jvm, 'android') } sourceSets { commonMain.dependencies { api 'org.jetbrains.kotlin:kotlin-stdlib-common' implementation "org.jetbrains.kotlinxkotlinx coroutines core common$coroutines_version" implementation "org.jetbrains.kotlinxkotlinx serialization runtime common$serialization_version" implementation "io.ktorktor client core$ktor_version" implementation "io.ktorktor client json$ktor_version" implementation "io.ktorktor client mock$ktor_version" implementation "io.ktorktor client serialization$ktor_version" implementation "com.squareup.sqldelightruntime$sqldelight_version" implementation "co.touchlabstately0.9.3" implementation "co.touchlabstately collections0.9.3" implementation "com.russhwolfmultiplatform settings$multiplatformSettings" } androidMain.dependencies { api 'org.jetbrains.kotlin:kotlin-stdlib' implementation "org.jetbrains.kotlinxkotlinx coroutines core$coroutines_version" implementation "org.jetbrains.kotlinxkotlinx serialization runtime$serialization_version" implementation "io.ktorktor client core jvm$ktor_version" implementation "io.ktorktor client json jvm$ktor_version" implementation "io.ktorktor client android$ktor_version" implementation "io.ktorktor client okhttp$ktor_version" implementation "io.ktorktor client mock jvm$ktor_version" implementation "io.ktorktor client serialization jvm$ktor_version" implementation "com.squareup.sqldelightruntime jvm$sqldelight_version" } iOSMain.dependencies { implementation "org.jetbrains.kotlinxkotlinx coroutines core native$coroutines_version" implementation "org.jetbrains.kotlinxkotlinx serialization runtime native$serialization_version" implementation "io.ktorktor client ios$ktor_version" implementation "io.ktorktor client core native$ktor_version" implementation "io.ktorktor client json native$ktor_version" implementation "io.ktorktor client serialization native$ktor_version" api "io.ktorktor client mock native$ktor_version" implementation "com.squareup.sqldelightios driver$sqldelight_version" } } } sqldelight { ChoreNinjaDb { packageName = "com.erl.choreninja.db" } } task packForXCode(type: Sync) { final File frameworkDir = new File(buildDir, "xcode-frameworks") final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG' final def framework = kotlin.targets.iOS.binaries.getFramework("SharedCode", mode) inputs.property "mode", mode dependsOn framework.linkTask from { framework.outputFile.parentFile } into frameworkDir doLast { new File(frameworkDir, 'gradlew').with { text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n" setExecutable(true) } } } tasks.build.dependsOn packForXCode'"
Think I understand, use android {...} target in SharedCode build.gradle
8 Views