gpt4 book ai didi

android - 在 Kotlin 多平台库中使用 Android 库

转载 作者:行者123 更新时间:2023-12-02 13:34:53 24 4
gpt4 key购买 nike

我分别有三个 objective-c ommonMain/androidMain/iOSMain。因为我需要在 androidMain 模块中访问 Android 设备中的 Assets 。我发现我无法使用 Android API... 以下是我的 build.gradle.kts 的一部分:

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

plugins {
id("com.android.application")
kotlin("multiplatform")
}
repositories {
google()
jcenter()
}

android {
compileSdkVersion(29)
buildToolsVersion("29.0.1")
defaultConfig {
minSdkVersion(19)
targetSdkVersion(29)
}
sourceSets {
getByName("main") {
manifest.srcFile("src/androidMain/AndroidManifest.xml")
java.srcDirs(file("src/androidMain/kotlin"))
res.srcDirs(file("src/androidMain/res"))
}
}
}

kotlin {
//select iOS target platform depending on the Xcode environment variables
val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
::iosArm64
else
::iosX64

iOSTarget("ios") {
binaries {
framework {
baseName = "Example"
}
}
}

jvm("android")

sourceSets["commonMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
}

sourceSets["androidMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}

sourceSets["commonTest"].dependencies {
implementation ("org.jetbrains.kotlin:kotlin-test")
implementation ("org.jetbrains.kotlin:kotlin-test-junit")
}
}

如何在 androidMain 中使用 Android 库?例如,
val inputStream = assets.open("Test.txt")

最佳答案

确保创建一个 AndroidManifest.xml,其(库模块)包名称与 SharedCode/src 目录下的(应用模块)包名称不同。正如 Nagy Robi 所说,使用 android() 而不是 jvm('android')。请同时检查以下引用资料:

  • Adding an Android Target to a Kotlin Multiplatform Project
  • Multiplatform sample
  • 关于android - 在 Kotlin 多平台库中使用 Android 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58588775/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com