3

我正在为 B4A 框架制作一个 Android 库。情况
如下:

  • 我的 Android 库使用 Java8 功能(例如 Lambda)
  • B4A (Basic4Android) 使用 legacy dex(而不是d8)来制作应用程序,因此与 java8 不兼容,并且不会自行脱糖。

在 B4A 中使用我的aar文件会导致以下错误:

Uncaught translation error: com.android.dx.cf.code.SimException:
  invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
...

官方论坛的解决方案是使用Bazel 的 desugar tool对库的 Jar 进行脱糖,但似乎它导致Expected a load for ...了不同的错误,而不是我的问题。

我的问题:
对于这些情况,是否可以使用 Android Studio 生成脱糖aar库(与 Java7 兼容且无 lambda)?

我知道d8会脱糖,但它的输出是.dex文件而不是.jar文件。

我尝试过的:
Android 的Using Java 8 Feature中所说的解决方案没有帮助,因为它不会产生兼容的 jar 并且错误仍然存​​在。

4

0 回答 0