Christian Sousa
04/02/2020, 3:50 PMmoko-resources
?
I’m trying to build my project but it always gives me the following: Object 'MR' has several compatible actual declarations in modules...
alex009
04/02/2020, 6:32 PMChristian Sousa
04/03/2020, 8:56 AMkotlin {
iosX64() // for iOS Simulator
iosArm64() // for iOS arm64 devices
sourceSets {
iosMain {
dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-properties-native:$serialization_version"
implementation "io.ktor:ktor-client-ios:$ktor_version"
implementation "io.ktor:ktor-client-core-native:$ktor_version"
implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
}
}
configure([targets.iosX64, targets.iosArm64]) {
compilations.main {
source(sourceSets.iosMain)
}
}
}
cocoapods {
summary = "My Lib"
homepage = "<https://google.com>"
frameworkName = "My Lib"
}
}
alex009
04/03/2020, 9:29 AMChristian Sousa
04/03/2020, 9:30 AMapply from: rootProject.file("gradle/experimental.gradle")
buildscript {
repositories {
google()
jcenter()
maven { url "<https://kotlin.bintray.com/kotlinx>" }
maven { url '<https://dl.bintray.com/jetbrains/kotlin-native-dependencies>' }
maven { url = "<https://dl.bintray.com/icerockdev/plugins>" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath "dev.icerock.moko:resources-generator:0.9.0"
classpath "dev.icerock:mobile-multiplatform:0.6.1"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "<https://kotlin.bintray.com/kotlinx>" }
maven { url "<https://dl.bintray.com/kotlin/ktor>" }
maven { url "<https://dl.bintray.com/icerockdev/moko>" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
the experimental.gradle
ext.experimentalAnnotations = [
"kotlin.Experimental",
"kotlin.experimental.ExperimentalTypeInference",
"kotlin.ExperimentalMultiplatform",
"kotlinx.coroutines.ExperimentalCoroutinesApi",
"kotlinx.coroutines.ObsoleteCoroutinesApi",
"kotlinx.coroutines.InternalCoroutinesApi",
"kotlinx.coroutines.FlowPreview"
]
My framework build.gradle
plugins {
id "com.android.library"
id "dev.icerock.mobile.multiplatform-resources"
id 'kotlin-multiplatform'
id 'kotlin-native-cocoapods'
id 'kotlinx-serialization'
}
version = "1.0"
apply from: project.file("gradle/target_android.gradle")
apply from: project.file("gradle/target_ios.gradle")
kotlin {
sourceSets {
all {
languageSettings {
progressiveMode = true
experimentalAnnotations.each { useExperimentalAnnotation(it) } // kotlin.ExperimentalUnsignedTypes - annotation FQ-name
}
}
commonMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-properties-common:$serialization_version"
implementation "io.ktor:ktor-client:$ktor_version"
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-json:$ktor_version"
implementation "io.ktor:ktor-client-serialization:$ktor_version"
implementation "com.benasher44:uuid:0.1.0"
implementation "com.soywiz.korlibs.klock:klock:1.9.1"
implementation "com.soywiz.korlibs.krypto:krypto:1.11.0"
implementation "dev.icerock.moko:resources:0.9.0"
implementation "com.google.android:flexbox:2.0.1"
}
}
}
}
multiplatformResources {
multiplatformResourcesPackage = "com.christiansousa.lib"
}
My target_android.gradleandroid {
compileSdkVersion 29
buildToolsVersion '29.0.2'
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '<http://proguard-rules.pro|proguard-rules.pro>'
}
}
}
kotlin {
android {
publishAllLibraryVariants()
}
sourceSets {
androidMain {
kotlin.srcDir("src/androidMain/kotlin")
dependencies {
implementation kotlin('stdlib-jdk8')
implementation "androidx.preference:preference-ktx:1.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-properties:$serialization_version"
implementation "io.ktor:ktor-client-android:$ktor_version"
implementation "io.ktor:ktor-client-core-jvm:$ktor_version"
implementation "io.ktor:ktor-client-json-jvm:$ktor_version"
implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
implementation "com.google.android.gms:play-services-tagmanager-v4-impl:17.0.0"
}
}
}
}
My ios_target.gradle
kotlin {
iosX64() // for iOS Simulator
iosArm64() // for iOS arm64 devices
sourceSets {
iosMain {
dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-properties-native:$serialization_version"
implementation "io.ktor:ktor-client-ios:$ktor_version"
implementation "io.ktor:ktor-client-core-native:$ktor_version"
implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
}
}
configure([targets.iosX64, targets.iosArm64]) {
compilations.main {
source(sourceSets.iosMain)
}
}
}
cocoapods {
// Configure fields required by CocoaPods.
summary = "My Lib"
homepage = "<https://google.com>"
frameworkName = "MyLib"
}
}
alex009
04/03/2020, 3:53 PMChristian Sousa
04/03/2020, 3:55 PMcocoapods
it seems that my resources are not in there, therefore I can’t access images and so on. Is this somewhat related? Or do I need to do something extra?alex009
04/04/2020, 5:56 AMChristian Sousa
04/06/2020, 3:57 PMalex009
04/06/2020, 4:28 PMChristian Sousa
04/07/2020, 11:36 AMiosX64("ios") {
binaries.framework {
baseName = "MyLib"
}
}
iosArm64("iosArm64") {
binaries.framework {
baseName = "MyLib"
}
}
alex009
04/08/2020, 1:22 PM