gpt4 book ai didi

java - 将 Java .class 文件传递​​给 Delphi Constructor

转载 作者:行者123 更新时间:2023-11-29 04:27:33 25 4
gpt4 key购买 nike

我正在使用 JNI 访问 Delphi 10.2 Tokyo 中的 Android 功能。我需要传递一个 .class 类型作为 Delphi 函数构造函数的参数。

原始的 Java 方法如下所示:

private Intent getServiceIntent() {
return new Intent(this, ToyVpnService.class);
}

来自 Intent 的 Android 文档构造函数:

Intent(Context packageContext, Class<?> cls)

Create an intent for a specific component.

我必须使用这个构造函数,我不能改变它。

我需要将其转换为 Delphi,但我一直坚持传递 .class 类型。现在,我的代码看起来像这样:

function TForm1.GetServiceIntent: JIntent;
begin
result := TJIntent.JavaClass.init(FContext, ???);
end;

我尝试使用 Java 中的 ClassLoader,但无法访问 loadClass() 函数,因为它受到保护,因此只能打包。

我尝试使用 Class.forName,但无法从 .class 文件中指定 Path

我将 .class 文件添加为 Delphi 资源文件并通过 TResourceStream 加载它,但找不到将此输入转换为 Java 的解决方案>类引用。

最佳答案

基于 this answer , 我猜应该是这样的

Intent := TJIntent.JavaClass.init(SharedActivityContext,
TJLang_Class.JavaClass.forName(StringToJString('com.example.ToyVpnService'),
True, SharedActivity.getClassLoader));

关于java - 将 Java .class 文件传递​​给 Delphi Constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45486996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com