- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 KMM 应用程序,其中 android 目标使用 Jetpack Compose。尝试使用可绘制资源时出现以下错误:
e: [...]/OnboardingScreen.kt: (33, 46): Unresolved reference: drawable
painterResource(id = R.drawable.ic_icon)
访问可绘制对象的结果。 .
./gradlew assembleDebug
时的所有警告plugins {
id("com.android.application")
kotlin("android")
}
val composeVersion = findProperty("version.compose") as String
val composeNavigationVersion = findProperty("version.composeNavigation") as String
val koinVersion = findProperty("version.koin") as String
android {
compileSdk = (findProperty("android.compileSdk") as String).toInt()
defaultConfig {
applicationId = "com.app.app.android"
minSdk = (findProperty("android.minSdk") as String).toInt()
targetSdk = (findProperty("android.targetSdk") as String).toInt()
versionCode = 1
versionName = "1.0"
}
buildFeatures {
compose = true
}
// Set both the Java and Kotlin compilers to target Java 8.
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion = composeVersion
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
}
dependencies {
implementation(project(":shared"))
// Android
implementation("com.google.android.material:material:1.4.0")
// Jetpack Compose
implementation("androidx.compose.ui:ui:$composeVersion")
implementation("androidx.compose.ui:ui-tooling:$composeVersion")
implementation("androidx.compose.foundation:foundation:$composeVersion")
implementation("androidx.compose.material:material:$composeVersion")
implementation("androidx.compose.material:material-icons-core:$composeVersion")
implementation("androidx.compose.material:material-icons-extended:$composeVersion")
implementation("androidx.activity:activity-compose:$composeVersion")
implementation("androidx.navigation:navigation-compose:$composeNavigationVersion")
// Koin
implementation("io.insert-koin:koin-android:$koinVersion")
}
configurations.all {
resolutionStrategy {
force("org.jetbrains.kotlin:kotlin-stdlib:1.5.31")
}
}
我的共享模块的 build.gradle.kts :
plugins {
kotlin("multiplatform")
kotlin("native.cocoapods")
id("com.android.library")
}
version = "1.0"
kotlin {
android()
iosX64()
iosArm64()
iosSimulatorArm64() // sure all ios dependencies support this target
cocoapods {
summary = "Some description for the Shared Module"
homepage = "Link to the Shared Module homepage"
ios.deploymentTarget = "14.1"
podfile = project.file("../ios/Podfile")
framework {
baseName = "shared"
}
}
val multiplatformVersion = findProperty("version.multiplatformSettings") as String
val koinVersion = findProperty("version.koin") as String
val coroutinesVersion = findProperty("version.coroutines") as String
sourceSets {
val commonMain by getting {
dependencies {
implementation("com.russhwolf:multiplatform-settings-no-arg:$multiplatformVersion")
implementation("io.insert-koin:koin-core:$koinVersion")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13.2")
}
}
val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
val iosX64Test by getting
val iosArm64Test by getting
val iosSimulatorArm64Test by getting
val iosTest by creating {
dependsOn(commonTest)
iosX64Test.dependsOn(this)
iosArm64Test.dependsOn(this)
iosSimulatorArm64Test.dependsOn(this)
}
}
}
android {
compileSdk = 31
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdk = 22
targetSdk = 31
}
}
最后,我的 gradle.properties:
# Gradle
org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M"
# Kotlin
kotlin.code.style=official
# Android
android.useAndroidX=true
android.compileSdk=31
android.targetSdk=31
android.minSdk=22
# MPP
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.mpp.enableCInteropCommonization=true
kotlin.native.enableDependencyPropagation=false
kotlin.native.ignoreDisabledTargets=true
# Common versions
version.multiplatformSettings=0.8.1
version.koin=3.1.4
version.coroutines=1.5.2-native-mt
# Android versions
version.compose=1.0.5
version.composeNavigation=2.4.0-rc01
提前致谢。
最佳答案
这就是您引用图像资源的方式:
import com.your.package.R
val img = R.drawable.img_name
或者
val img = com.your.package.R.drawable.img_name
关于android - KMM + 撰写 : Unresolved reference: drawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70479168/
我是 KMM 的新手,我正在尝试将 KMM 项目作为一个 pod 集成到我的示例 Xcode 项目中。我可以将 KMM Pod 链接到我的 Xcode 项目。但是,如果我尝试调用其中一个函数,则会产生
我一直在尝试使用共享模块 KMM 将图像上传到 aws s3 服务器。它在 Android 中工作得很好,但在 iOS 中我遇到了这个问题:- 未捕获的 Kotlin 异常:kotlin.native
我有一个 KMM 应用程序,其中 android 目标使用 Jetpack Compose。尝试使用可绘制资源时出现以下错误: e: [...]/OnboardingScreen.kt: (33, 4
在原生 android 项目中,我们可以定义 BuildConfig 变量,这些变量可以根据所选的构建类型(调试或发布)进行更改。为此,我们可以在应用程序级别的 gradle 文件中添加以下代码 bu
我正在尝试将一些业务逻辑从我的 iOS 应用程序转移到 KMM。当我突然开始在工作室遇到问题时,我已经做了一些工作。它没有构建,有奇怪的 metaspace 错误,等等。老实说,我在我的项目周围打了几
我有一个 AndrodiStudio KMM 项目,我想添加一个 JS 目标。 鉴于 JS 开发仅在 IntelliJ 中可用,我希望我必须在 IDEA 中打开项目添加一个“模块”——但我什至不知道选
我需要为 iOS 和 Android 构建一个应用程序。 重新启动 Android Studio 后出现此错误。 Kotlin Multiplatform Mobile plugin issue Ko
我正在关注 KotlinLang.org 中的“创建您的第一个多平台应用程序”教程。一切正常,直到我尝试在 iOS 机器上运行该示例。设备模拟器在很长一段时间后打开,但应用程序未在其上运行。我尝试先启
我是 KMM 的初学者,刚刚在 Macbook M1 Pro 上创建了一个新的 KMM 应用程序项目。没有代码更改,这只是我正在使用的 hello world 应用程序。我已经能够成功地为 andro
SQLDelight 仍被标记为 Maven 存储库中的实验库 here ,尽管第一个版本似乎是在 2018 年 10 月发布的。 我在 KMM 中制作了一个示例应用程序,我可以在其中插入/删除行,到
SQLDelight 仍被标记为 Maven 存储库中的实验库 here ,尽管第一个版本似乎是在 2018 年 10 月发布的。 我在 KMM 中制作了一个示例应用程序,我可以在其中插入/删除行,到
我们正在尝试为 ios 和 android 构建 KMM(Kotlin 多平台移动)应用程序。此项目中包含 c/c++ 模块。在 iOS 构建中,我们从 .h 文件中收到此错误: error: use
将 Xcode 更新到 13.0 后,我无法运行使用 Kotlin Multiplatform 的 iOS 应用程序。 构建失败,Command PhaseScriptExecution failed
我正在按照 https://kotlinlang.org/docs/mobile/integrate-in-existing-app.htm 中的 KMM 教程工作.当我到达步骤 ./gradlew
我关注了KMM hands-on tutorial关于如何使用 KMM 构建示例应用程序,我能够成功完成所有步骤! (Yu-huu!)现在我正在尝试在生产应用程序中做一个小的 POC。所以我创建了一个
这个问题已经有答案了: Unable to add apple device in Android studio (2 个回答) 已关闭 3 年前。 我对 KMM 完全陌生(Kotlin Multip
这个问题已经有答案了: Unable to add apple device in Android studio (2 个回答) 已关闭 3 年前。 我对 KMM 完全陌生(Kotlin Multip
我无法在 Android Studio 中为我的 Swift 代码设置断点。我认为 KMM 插件允许这样做。有什么办法可以实现吗? 如何在 iOS 中调试我的 iOS UI + 共享业务逻辑? 最佳答
我正在尝试使用 coroutines在 Kotlin Multiplatform项目。我也没有经验。 我正在尝试调用此函数 fun startFlow { coroutineScope.lau
我使用 KMM 向导在 Android Studio 中创建了一个新项目。我在关注 handson tutorial我注意到我没有在某些目录中创建包的选项。具体来说,在“共享”模块内部,只有 andr
我是一名优秀的程序员,十分优秀!