从 Scala 2.12 升级到 2.13 时出现模糊方法名称的 AbstractMethodError

jua*_*ito 1 scala sbt slick

我收到以下错误:

java.lang.AbstractMethodError: Receiver class com.pack.ReceiverDAO does not define or inherit an implementation of the resolved method 'abstract void com$pack$proj$dao$JSDAO$_setter_$jsDAOApi_$eq(slick.jdbc.JdbcProfile$API)' of interface com.pack.proj.dao.JSDAO.
Run Code Online (Sandbox Code Playgroud)

当我尝试将代码从 2.12 升级到 Scala 2.13 时(给我带来问题的依赖项com.pack.proj是由 Scala 2.12 编译的)。我认为消除此错误的一个简单方法是为其实现一个存根。然而,目前,我没有源代码com.pack.proj.dao.JSDAO(这就是我extends在“接收器”中的源com.pack.ReceiverDAO代码),所以我不确定如何override com$pack$proj$dao$JSDAO$_setter_$jsDAOApi_$eq(slick.jdbc.JdbcProfile$API)消除“覆盖任何内容”之类的编译错误。我怎样才能覆盖这个继承的abstract方法或以其他方式摆脱这个运行时错误?

为了完整起见,我想补充一点,当我声明这个麻烦的库作为依赖项exclude时,我需要一些 Scala_2.12 编译的 Slick 库:com.pack.proj

java.lang.AbstractMethodError: Receiver class com.pack.ReceiverDAO does not define or inherit an implementation of the resolved method 'abstract void com$pack$proj$dao$JSDAO$_setter_$jsDAOApi_$eq(slick.jdbc.JdbcProfile$API)' of interface com.pack.proj.dao.JSDAO.
Run Code Online (Sandbox Code Playgroud)

Jas*_*r-M 6

您根本无法在 2.13 项目中使用使用 2.12 编译的库。它不可避免地会破裂。除了使用使用 2.13 编译的该库版本或根本不使用它之外,没有其他真正的补救措施。