ARQoid SPARQL查询中的错误java.lang.ExceptionInInitializerError

时间:2016-04-14 04:21:39

标签: java android sparql

请帮帮我... 我在Android Studio中使用ARQoid,我从ARQoid项目中导入了所有jar。

代码如下。 sparql查询没问题,我测试了端点。

    String sparqlEndpoint = "http://XXX/sparql";
    String sparqlQuery = "PREFIX bf: <http://bibframe.org/vocab/> "
            + "SELECT  * "
            + "WHERE {?s ?p ?o. "
            + "?s bf:label ?u. "
            + "filter (lang(?u) = \"chs\" && regex(?u,\"^k\")).}";
    // create the Jena query using the ARQ syntax (has additional support for SPARQL federated queries)
    Query query = QueryFactory.create(sparqlQuery, Syntax.syntaxARQ);

这一行“查询查询= QueryFactory.create(sparqlQuery,Syntax.syntaxARQ);”是我收到错误的地方

完整的错误在这里:

Exception in thread "main" java.lang.ExceptionInInitializerError
at com.hp.hpl.jena.rdf.model.ResourceFactory$Impl.createProperty(ResourceFactory.java:245)
at com.hp.hpl.jena.rdf.model.ResourceFactory.createProperty(ResourceFactory.java:121)
at com.hp.hpl.jena.vocabulary.RDF.property(RDF.java:32)
at com.hp.hpl.jena.vocabulary.RDF.<clinit>(RDF.java:45)
at com.hp.hpl.jena.sparql.ARQConstants.<clinit>(ARQConstants.java:31)
at com.hp.hpl.jena.query.ARQ.<clinit>(ARQ.java:40)
at com.hp.hpl.jena.query.Query.<clinit>(Query.java:54)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:71)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:43)
at shldata.getNames(shldata.java:29)
at shldata.main(shldata.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.RuntimeException: Stub!
    at android.util.Log.i(Log.java:9)
    at org.slf4j.impl.AndroidLoggerFactory.getLogger(AndroidLoggerFactory.java:69)
    at org.slf4j.impl.AndroidLoggerFactory.getLogger(AndroidLoggerFactory.java:44)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
    at com.hp.hpl.jena.rdf.model.impl.PropertyImpl.<clinit>(PropertyImpl.java:64)
    ... 16 more

2 个答案:

答案 0 :(得分:0)

您的日志记录设置似乎失败了:

Caused by: java.lang.RuntimeException: Stub!
    at android.util.Log.i(Log.java:9)
    at org.slf4j.impl.AndroidLoggerFactory.getLogger(AndroidLoggerFactory.java:69)

你需要放入一个slf4j提供者(默认的“print to system.err”可能工作得很好 - Jena默认不打印任何东西)。

答案 1 :(得分:0)

您需要在Android设备或模拟器上将您的应用作为Android应用程序运行。如果它具有任何Android依赖项,则无法将其作为常规Java应用程序运行。

异常消息

Caused by: java.lang.RuntimeException: Stub!

来自Android平台JAR存根的版本,适用于编译但不能在运行时使用。