java-如何在Android中使用swi-prolog

我使用swi-prolog开发了一个prolog程序,并使用带有JPL.jar的常规java为其附加了接口,
运行得很好.

现在,我想使用android移动界面而不是java桌面界面执行相同操作.因此,我创建了一个android应用程序,将JPL添加为外部jar,并如前所述调用了prolog文件.代码中没有显示任何错误.

但是,当我将其作为android应用程序运行时,它说找不到jpl.query $1.

这是logcat

08-21 17:36:35.782: D/dalvikvm(659): DexOpt: unable to opt direct call 0x0cd8 at 0x08 in Ljpl/Query;.abort
08-21 17:36:35.812: W/dalvikvm(659): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Ljpl/fli/Prolog;
08-21 17:36:35.812: D/AndroidRuntime(659): Shutting down VM
08-21 17:36:35.822: W/dalvikvm(659): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
08-21 17:36:35.916: E/AndroidRuntime(659): FATAL EXCEPTION: main
08-21 17:36:35.916: E/AndroidRuntime(659): java.lang.ExceptionInInitializerError
08-21 17:36:35.916: E/AndroidRuntime(659):  at jpl.Query.open(Query.java:286)
08-21 17:36:35.916: E/AndroidRuntime(659):  at jpl.Util.textToTerm(Util.java:162)
08-21 17:36:35.916: E/AndroidRuntime(659):  at jpl.Query.<init>(Query.java:198)
08-21 17:36:35.916: E/AndroidRuntime(659):  at com.example.trtest.swi.main(swi.java:21)
08-21 17:36:35.916: E/AndroidRuntime(659):  at com.example.trtest.MainActivity$1.onClick(MainActivity.java:70)
------
----

08-21 17:36:35.916: E/AndroidRuntime(659): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load jpl: findLibrary returned null
08-21 17:36:35.916: E/AndroidRuntime(659):  at java.lang.Runtime.loadLibrary(Runtime.java:365)
08-21 17:36:35.916: E/AndroidRuntime(659):  at java.lang.System.loadLibrary(System.java:535)
08-21 17:36:35.916: E/AndroidRuntime(659):  at jpl.JPL.loadNativeLibrary(JPL.java:100)
08-21 17:36:35.916: E/AndroidRuntime(659):  at jpl.fli.Prolog.<clinit>(Prolog.java:85)
...

那么错误可能是什么.

我发现有人说JPL(swi prolog)不能在android中使用,是真的.

我该怎么办才能在Android上运行我的Prolog应用

谢谢
马西

解决方法:

SWI-Prolog开发人员Jan Wielemaker最近在邮件列表中发布了在Android设备上使用SWI-Prolog的一些进展.查看[SWIPL] Holiday present: SWI-Prolog on Android

上一篇:Web APi之控制器选择Action方法过程(九)


下一篇:c-查找四个10的所有表达式