我已经开发了一个使用swi-prolog的prolog程序,并且使用普通java与JPL.jar, 连接了一个接口,它运行完美。如何使用swi-prolog与android
现在我想用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中使用,这是真的。
我能做些什么有安卓
感谢我的序言中的应用程序运行 Mathee
您有相同jar的副本吗? –
不好意思,但SWI-Prolog无法在Android中运行。我们都希望它能做... – CapelliC