Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android上使用swi prolog_Java_Android_Jvm_Prolog_Jpl - Fatal编程技术网

Java 如何在android上使用swi prolog

Java 如何在android上使用swi prolog,java,android,jvm,prolog,jpl,Java,Android,Jvm,Prolog,Jpl,我用swi prolog开发了一个prolog程序,我用普通java和JPL.jar为它附加了一个接口, 它运行得很好 现在我想用android移动接口而不是java桌面接口做同样的事情。因此,我创建了一个android应用程序,将JPL添加为外部jar,并像前面一样调用prolog文件。代码中没有显示错误 但当我把它作为android应用程序运行时,它说找不到jpl.query$1 这是航海日志 08-21 17:36:35.782: D/dalvikvm(659): DexOpt: unab

我用swi prolog开发了一个prolog程序,我用普通java和JPL.jar为它附加了一个接口, 它运行得很好

现在我想用android移动接口而不是java桌面接口做同样的事情。因此,我创建了一个android应用程序,将JPL添加为外部jar,并像前面一样调用prolog文件。代码中没有显示错误

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

这是航海日志

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)
...
08-21 17:36:35.782:D/dalvikvm(659):DexOpt:无法选择Ljpl/Query;中0x08处的直接调用0x0cd8;。中止
08-21 17:36:35.812:W/dalvikvm(659):异常Ljava/lang/unsatifiedlinkerror;初始化Ljpl/fli/Prolog时抛出;
08-21 17:36:35.812:D/AndroidRuntime(659):关闭虚拟机
08-21 17:36:35.822:W/dalvikvm(659):threadid=1:线程退出时出现未捕获异常(组=0x40a13300)
08-21 17:36:35.916:E/AndroidRuntime(659):致命异常:main
08-21 17:36:35.916:E/AndroidRuntime(659):java.lang.ExceptionInInitializeError
08-21 17:36:35.916:E/AndroidRuntime(659):在jpl.Query.open(Query.java:286)
08-21 17:36:35.916:E/AndroidRuntime(659):在jpl.Util.textToTerm(Util.java:162)
08-21 17:36:35.916:E/AndroidRuntime(659):在jpl.Query.(Query.java:198)
08-21 17:36:35.916:E/AndroidRuntime(659):位于com.example.trtest.swi.main(swi.java:21)
08-21 17:36:35.916:E/AndroidRuntime(659):在com.example.trtest.MainActivity$1.onClick(MainActivity.java:70)
------
----
08-21 17:36:35.916:E/AndroidRuntime(659):原因:java.lang.UnsatifiedLink错误:无法加载jpl:findLibrary返回null
08-21 17:36:35.916:E/AndroidRuntime(659):在java.lang.Runtime.loadLibrary(Runtime.java:365)上
08-21 17:36:35.916:E/AndroidRuntime(659):位于java.lang.System.loadLibrary(System.java:535)
08-21 17:36:35.916:E/AndroidRuntime(659):在jpl.jpl.loadNativeLibrary(jpl.java:100)
08-21 17:36:35.916:E/AndroidRuntime(659):在jpl.fli.Prolog.(Prolog.java:85)
...
那么错误可能是什么呢

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

我该怎么做才能让prolog应用程序在android上运行

谢谢
SWI Prolog开发人员Mathee

Jan Wielemaker最近在邮件列表中的Android设备上发布了使用SWI Prolog的一些进展。请参见

您有相同jar的副本?遗憾的是,SWI Prolog无法在Android中运行。我们都希望这样做……遗憾的是,URL被破坏了,因为2014年8月10日找到了一个有效的URL:,这导致了官方网站: