Has*_*dad 4 macos kotlin apple-m1
我使用的是 MacBook M1 芯片和 macOS Ventura 13.0.1,我的项目是 KMP,用于构建移动应用程序中使用的内部插件。
我有一个自定义 Gradle 任务来构建插件并将其发布到我的本地计算机,在更新到 Ventura 之前,该任务曾经完美地工作,但现在我得到的只是 kotlin 编译器到达 linkReleaseFrameworkIos 任务时出现的构建错误:
Compilation failed: Could not initialize class llvm.llvm
Run Code Online (Sandbox Code Playgroud)
我尝试使用不同的 kotlin 版本,例如 1.6.10、1.7.10 和 1.7.21,仍然弹出相同的错误。
另外,我向开发者工具授予了对 Intellij 的访问权限:( https://i.stack.imgur.com/BpRRb.png )
使用堆栈跟踪运行后:
Compilation failed: Could not initialize class llvm.llvm
* Source files:
* Compiler version info: Konan: 1.5.30 / Kotlin: 1.5.30
* Output kind: FRAMEWORK
Run Code Online (Sandbox Code Playgroud)
和:
java.lang.NoClassDefFoundError: Could not initialize class llvm.llvm
at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$contextLLVMSetupPhase$1.invoke(BitcodePhases.kt:34)
at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$contextLLVMSetupPhase$1.invoke(BitcodePhases.kt:25)
at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:64)
at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:62)
Run Code Online (Sandbox Code Playgroud)
和:
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: Can't load library: /Users/hasanshaddad/.konan/kotlin-native-prebuilt-macos-aarch64-1.5.30/konan/nativelib/1650369144349498599/libllvmstubs.dylib [in thread "Execution worker for ':' Thread 4"]
Run Code Online (Sandbox Code Playgroud)
所需的 .dylib 确实存在于需要的地方,但编译器似乎无法加载它。(https://i.stack.imgur.com/eWmck.png)
关于可能导致此类问题的任何建议?
我通过在终端中执行下一个命令解决了这个问题,请确保将命令中的版本更改为您的 Kotlin 版本(示例中使用的 Kotlin 版本是 1.5.30):
install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib ~/.konan/kotlin-native-prebuilt-macos-1.5.30/konan/nativelib/libllvmstubs.dylib
Run Code Online (Sandbox Code Playgroud)
文件夹路径也可能包含拱门“x86_64”
install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib ~/.konan/kotlin-native-prebuilt-macos-x86_64-1.5.30/konan/nativelib/libllvmstubs.dylib
Run Code Online (Sandbox Code Playgroud)
或拱门“aarch64”
install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib ~/.konan/kotlin-native-prebuilt-macos-aarch64-1.5.30/konan/nativelib/libllvmstubs.dylib
Run Code Online (Sandbox Code Playgroud)
PS 如果您拥有所有这些文件夹,请确保执行所有前面的命令
最后,执行以下命令(替换您的应用程序存储库的路径):
.../android-project-repo/gradlew --stop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |