【发布时间】:2018-11-01 06:46:49
【问题描述】:
今天我遇到了一个问题。我的项目需要使用一些使用 Java 1.8 功能的库 (*.jar)。我看到越来越多的库现在使用 Java 1.8 功能(如 webRTC、exoplayer 等)。这样,我们必须去糖。
Desugaring 允许您通过在构建过程中用旧的字节码和语言 API 替换新的字节码和语言 API 来在旧设备上使用这些功能
使用d8.bat(替换dx.bat),默认开启脱糖功能。因此,您现在可以在针对旧设备的同时使用大多数最新的语言更改。
当我们编译一个项目时,Delphi 在后台这样做:
dx.bat --dex --output="C:\Dev\output\libwebrtc-dexed.jar" "C:\Dev\lib\libwebrtc.jar"
如果库包含 Java 1.8 功能,这将失败。
所以 Delphi 必须这样做:
d8.bat --lib C:\SDKs\android-sdk-windows\platforms\android-28\android.jar --output="C:\Dev\output\libwebrtc-dexed.jar" "C: \Dev\lib\libwebrtc.jar"
知道如何告诉 Delphi 使用 d8.bat 而不是 dx.bat?
【问题讨论】:
-
也许你可以修改 dx.bat 让它做 d8 做的事?
-
@DaveNottage 甚至只是让它调用 d8.bat
-
是的,这是我的一个想法,但我想知道他们是否不是另一种解决方案,可以避免我“破坏”我的 android SDK
-
它会如何“破坏”SDK?
-
@DaveNottage:因为现在 dx.bat 将不再是原来的 dx.bat,所以像 android studio 这样的产品将不再工作。但是是的,这个解决方案是可能的!
标签: delphi firemonkey dx android-d8