【发布时间】:2014-12-01 16:45:25
【问题描述】:
我正在使用 XE7 编写一个 Android 应用程序。我有一个 java 源文件,其中包含一个我希望使用的类。我正在为创建和使用此类的确切方式而苦苦挣扎。我做了以下事情:
提供的文件(商业 JAVA 库)称为 FT311I2CInterface.java。 (它可以访问FT311 USB device)。该文件中的类名为“FT311I2CInterface”。
该文件是我能够使用 Eclipse 编译和运行的 Android 演示项目的一部分。此外,我还能够从“FT311I2CInterface.java”生成“FT311I2CInterface.jar”。
我在我的 Delphi Android 项目的库节点下添加了“FT311I2CInterface.jar”。
从“FT311I2CInterface.jar”我尝试使用推荐的Java2op.exe tool为这个类提取一个Delphi接口,但没有成功,但使用商业工具Java2Pas我确实获得了一个Delphi接口“JFT311I2CInterfaceClass”和“TJFT311I2C接口”。
使用此接口,我构建并运行了一个简单的 Android 项目,该项目调用此导入单元,创建此类的实例,以便我调用其方法。
我的创作路线是:
procedure Test;
var
F311 : JFT311I2CInterface;
begin
F311 := TJFT311I2CInterface.JavaClass.init( MainActivity );
// ...
end;
调用此行时,出现错误:
异常类 EJNI 带有消息“找不到 Java 类 JFT311I2CInterface”。处理 Project1.apk (6287)
我的问题是,我是否必须以某种方式注册或加载此类才能调用它?我看到有很多从 Delphi 调用 Java 类的示例,但是当涉及到使用 Android SDK 中还没有的类时,我感到很困惑。
【问题讨论】: