【问题标题】:Delphi xe5 JNI : ClassNotFoundExceptionDelphi xe5 JNI:ClassNotFoundException
【发布时间】:2013-10-25 06:38:11
【问题描述】:

我按照 stackoverflow (http://www.pclviewer.com/android/androidJNI.html) 上提供的教程导入了特定于设备的库来处理扫描仪(Honeywell 70e Black)。

TJDexClassLoader 确实实例化正确(不是 nil...),但我无法加载我需要的内部类...

cl.loadclass(stringtoJString('com/honeywell/decodemanager/DecodeManager'))

我在eclipse下打开了这个库,我多次检查字符串都没有问题,但是我得到了这个异常:

java.lang.ClassNotFoundException: com/honeywell/decodemanager/DecodeManager

我已经知道如果它有效,我将立即陷入一个新问题:为我将实例化的类提供 Context 和 Handler,其签名是:

(Landroid/content/Context;Landroid/os/Handler;)V 

提前感谢您的帮助或建议^^

【问题讨论】:

  • 本教程不演示加载扫描仪类。它演示了加载其他内容。你能运行教程的代码并加载 that 类吗?如果是这样,那么找出您的代码不同的地方。如果没有,请先调试那个代码,然后再开始为自己的项目进行更改。
  • 我正在等待许可版本,我正在使用演示版本进行测试,这似乎是重点……我尝试了最简单的库,但它也不起作用.

标签: android delphi java-native-interface dexclassloader


【解决方案1】:

我的错误是认为DexClassLoader 正在生成 .dex 文件,但它是从 .apk 文件中提取它,而 .jar 文件不包含它。

生成 .dex 文件并强制归档后,一切正常!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多