You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac运行Scala应用遇Kanela Agent架构兼容问题求助

解决M1 Mac上arm64架构下Scala应用Kanela Agent启动失败问题

错误核心是Kanela Agent依赖的JNA生成的临时库仅包含x86_64/i386架构,不兼容M1的arm64,导致java.lang.UnsatisfiedLinkError。以下是可行的解决方法:

  • 升级Kanela Agent到支持arm64的版本
    老版本Kanela未适配Apple Silicon,需确保项目使用的Kanela版本支持arm64。在项目的build.sbt中更新依赖:

    libraryDependencies += "io.kamon" % "kanela-agent" % "1.0.12" // 替换为最新稳定版
    

    同时如果使用了sbt-kanela-plugin,也需同步升级插件版本:

    addSbtPlugin("io.kamon" % "sbt-kanela-runner" % "2.0.9") // 需匹配Kanela核心版本
    
  • 强制JNA生成arm64架构临时库
    在JVM参数中指定JNA架构,让其生成适配arm64的临时文件。可以在项目的build.sbt中添加:

    run / javaOptions += "-Djna.arch=arm64"
    

    或者直接在运行sbt时传递参数:

    sbt -J-Djna.arch=arm64 run
    
  • 彻底清理JNA缓存
    JNA的缓存目录可能残留了旧的x86_64架构文件,手动删除整个缓存文件夹:

    rm -rf ~/Library/Caches/JNA/
    

    执行后重新启动sbt run。

  • 确认终端与sbt的架构为arm64
    确保终端未通过Rosetta运行(右键终端图标,取消“使用Rosetta打开”选项),或者在终端中切换到arm64架构:

    arch -arm64 zsh
    

    再运行sbt run,避免sbt以x86_64模式启动。

  • 临时禁用Kanela Agent排查问题
    如果以上方法无效,可先暂时禁用Kanela Agent验证应用本身是否能正常运行:

    • 若使用sbt-kanela-plugin,在build.sbt中注释掉插件引用;
    • 若手动添加了-javaagent参数,移除该参数后重新运行。

内容的提问来源于stack exchange,提问作者Mauricio Reis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:37:14