gpt4 book ai didi

java - 尝试从 Delphi 调用基于 Android JAR 的 JAVA 类时缺少类错误

转载 作者:行者123 更新时间:2023-11-30 11:11:49 26 4
gpt4 key购买 nike

我正在使用 XE7 编写一个 Android 应用程序。我有一个 java 源文件,其中包含一个我希望使用的类。我正在努力寻找创建和使用此类的确切方法。我做了以下事情:

  1. 提供的文件(商业 JAVA 库)称为 FT311I2CInterface.java。 (它可以访问 FT311 USB device )。此文件中的类称为“FT311I2CInterface”。

  2. 此文件是我能够使用 Eclipse 编译和运行的 Android 演示项目的一部分。此外,我能够从“FT311I2CInterface.java”生成“FT311I2CInterface.jar”。

  3. 我在我的 Delphi Android 项目的库节点下添加了“FT311I2CInterface.jar”。

  4. 我尝试使用推荐的 Java2op.exe tool 从“FT311I2CInterface.jar”中提取此类的 Delphi 接口(interface)。但没有成功,但使用商业工具Java2Pas我确实获得了一个 Delphi 接口(interface)“JFT311I2CInterfaceClass”和“TJFT311I2CInterface”。

  5. 使用此接口(interface),我构建并运行了一个简单的 Android 项目,该项目调用此导入单元,创建了此类的实例以供我调用其方法。

我的创作路线是:

procedure Test;
var
F311 : JFT311I2CInterface;
begin
F311 := TJFT311I2CInterface.JavaClass.init( MainActivity );
// ...
end;

调用此行时,出现错误:

Exception class EJNI with message 'Java class JFT311I2CInterface could not be found'. Process Project1.apk (6287)

我的问题是,我是否必须以某种方式注册或加载此类才能调用它?我看到有很多从 Delphi 调用 Java 类的示例,但在使用 Android SDK 中尚不存在的类时,我感到很困惑。

最佳答案

查找来自 Brian Long 的视频和网站。他有一个创建 Delphi Android 包装器(用于 Java 类)的示例,Embarcadero 不提供该包装器。他的例子是调用Toast。这里有很多陷阱,但如果您能了解他如何将 Android Api 文档“翻译”成 Delphi 包装器,那么您最终也能为自己的 Java 类做同样的事情。 SO 上有 1 或 2 个我自己的。将 Android 文档与 Delphi 包装器实现进行比较,直到您看到模式出现为止。

关于java - 尝试从 Delphi 调用基于 Android JAR 的 JAVA 类时缺少类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233107/

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