Hi,
When I update k/m to 1.3.60
I got two Error
First:
On iOS Build
Task :linkDebugFrameworkIOSArm64
warning: linking module flags 'SDK Version': IDs have conflicting values ('[2 x i32] [i32 13, i32 2]' from /var/folders/ds/2v9832g575jblpl14n7p3nxh0000gn/T/protocols3108039485156635603.bc with '[2 x i32] [i32 13, i32 0]' from out)
Second:
On Android Run
dlopen("/data/app/.../lib/arm64/libAndroid.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "__cxa_throw" referenced by "/data/app/.../lib/arm64/libAndroid.so"...
But 1.3.50 is OK.
I don't know what's wrong
Please Help me, Thanks
On iOS it is just a warning, not an error.
Android error is strange, could you please provide info on the Android version and device where you see this problem, it could be real.
Try to add smth like
```
diff --git a/konan/konan.properties b/konan/konan.properties
index 7bda4d7d4..c1164556a 100644
--- a/konan/konan.properties
+++ b/konan/konan.properties
@@ -496,7 +496,7 @@ clangOptFlags.android_arm32 = -O3 -ffunction-sections
linkerNoDebugFlags.android_arm32 = -Wl,-S
clangNooptFlags.android_arm32 = -O1
targetSysRoot.android_arm32 = target-sysroot-1-android_ndk
-linkerKonanFlags.android_arm32 = -lm -lc++_static -landroid -llog -latomic
+linkerKonanFlags.android_arm32 = -lm -lc++_static -lc++abi -landroid -llog -latomic
# Android ARM64, based on NDK.
targetToolchain.macos_x64-android_arm64 = target-toolchain-2-osx-android_ndk
@@ -523,7 +523,7 @@ clangFlags.android_arm64 = -cc1 -target-cpu cortex-a57 -emit-obj -disable-llvm-p
clangOptFlags.android_arm64 = -O3 -ffunction-sections
clangNooptFlags.android_arm64 = -O1
targetSysRoot.android_arm64 = target-sysroot-1-android_ndk
-linkerKonanFlags.android_arm64 = -lm -lc++_static -landroid -llog -latomic
+linkerKonanFlags.android_arm64 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_arm64 = -Wl,-S
# Android X86, based on NDK.
@@ -551,7 +551,7 @@ clangFlags.android_x86 = -cc1 -target-cpu i686 -emit-obj -disable-llvm-passes -x
clangOptFlags.android_x86 = -O3 -ffunction-sections
clangNooptFlags.android_x86 = -O1
targetSysRoot.android_x86 = target-sysroot-1-android_ndk
-linkerKonanFlags.android_x86 = -lm -lc++_static -landroid -llog -latomic
+linkerKonanFlags.android_x86 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_x86 = -Wl,-S
# Android X64, based on NDK.
@@ -579,7 +579,7 @@ clangFlags.android_x64 = -cc1 -target-cpu x86-64 -emit-obj -disable-llvm-passes
clangOptFlags.android_x64 = -O3 -ffunction-sections
clangNooptFlags.android_x64 = -O1
targetSysRoot.android_x64 = target-sysroot-1-android_ndk
-linkerKonanFlags.android_x64 = -lm -lc++_static -landroid -llog -latomic
+linkerKonanFlags.android_x64 = -lm -lc++_static -lc++abi -landroid -llog -latomic
linkerNoDebugFlags.android_x64 = -Wl,-S
``
in.konan/kotlin-native-macos-1.3.60/konan/konan.properties` and let us know if it fixes the problem.
@olonho
I Add this Code , Android seem be OK, Great!!
Thanks very very much.
and How do I get this Patch ?? at 1.3.61 ????
PS: iOS warning is ok???
Thanks~~
iOS warning is not a problem. We'll try to include it 1.3.61.
@olonho Still getting the warning:
warning: linking module flags 'SDK Version': IDs have conflicting values ('[2 x i32] [i32 13, i32 2]' from /var/folders/4c/13yp5nx15q1_vfhb_cswvjt00000gn/T/protocols4296468658296551185.bc with '[2 x i32] [i32 13, i32 0]' from out)
Gradle: 6.1.1
Kotlin: 1.3.61
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_211 (Oracle Corporation 25.211-b12)
OS: Mac OS X 10.15.3 x86_64
packForXcode task:
val packForXcode by tasks.creating(Sync::class) {
val targetDir = File(buildDir, "xcode-frameworks")
//selecting the right configuration for the iOS framework depending on the Xcode environment variables
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val framework = kotlin.targets.getByName<KotlinNativeTarget>("ios").binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
from({ framework.outputDirectory })
into(targetDir)
/// generate a helpful ./gradlew wrapper with embedded Java path
doLast {
val gradlew = File(targetDir, "gradlew")
gradlew.writeText("#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n")
gradlew.setExecutable(true)
}
}
Same warning here using Kotlin 1.3.61
Android error is fixed.
For iOS warning, see https://youtrack.jetbrains.com/issue/KT-35001
Most helpful comment
@olonho Still getting the warning:
Gradle: 6.1.1
Kotlin: 1.3.61
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_211 (Oracle Corporation 25.211-b12)
OS: Mac OS X 10.15.3 x86_64
packForXcode task: