运行OWL API 5

问题描述 投票:1回答:1

我想在Android v8.0(Oreo)上使用OWLAPI 5.1.0。但是,当我运行应用程序时,它会在OWLManager.createOWLOntologyManager()崩溃。我已将以下jar添加到我的应用程序的gradle.build(jar文件的来源 - here):

implementation files('libs/aopalliance-1.0.jar')
implementation files('libs/caffeine-2.3.5.jar')
implementation files('libs/commons-codec-1.9.jar')
implementation files('libs/commons-io-2.5.jar')
implementation files('libs/commons-rdf-api-0.3.0-incubating.jar')
implementation files('libs/fluent-hc-4.5.2.jar')
implementation files('libs/guava-20.0.jar')
implementation files('libs/guice-4.1.0.jar')
implementation files('libs/guice-assistedinject-4.1.0.jar')
implementation files('libs/guice-multibindings-4.1.0.jar')
implementation files('libs/httpclient-4.5.2.jar')
implementation files('libs/httpclient-cache-4.5.2.jar')
implementation files('libs/httpcore-4.4.5.jar')
implementation files('libs/httpcore-nio-4.4.5.jar')
implementation files('libs/httpmime-4.5.2.jar')
implementation files('libs/jackson-annotations-2.8.5.jar')
implementation files('libs/jackson-core-2.8.5.jar')
implementation files('libs/jackson-databind-2.8.5.jar')
implementation files('libs/javax.inject-1.jar')
implementation files('libs/jcl-over-slf4j-1.7.22.jar')
implementation files('libs/jsonld-java-0.9.0.jar')
implementation files('libs/jsr305-3.0.1.jar')
implementation files('libs/owlapi-distribution-5.1.0.jar')
implementation files('libs/rdf4j-model-2.1.4.jar')
implementation files('libs/rdf4j-rio-api-2.1.4.jar')
implementation files('libs/rdf4j-rio-binary-2.1.4.jar')
implementation files('libs/rdf4j-rio-datatypes-2.1.4.jar')
implementation files('libs/rdf4j-rio-jsonld-2.1.4.jar')
implementation files('libs/rdf4j-rio-languages-2.1.4.jar')
implementation files('libs/rdf4j-rio-n3-2.1.4.jar')
implementation files('libs/rdf4j-rio-nquads-2.1.4.jar')
implementation files('libs/rdf4j-rio-ntriples-2.1.4.jar')
implementation files('libs/rdf4j-rio-rdfjson-2.1.4.jar')
implementation files('libs/rdf4j-rio-rdfxml-2.1.4.jar')
implementation files('libs/rdf4j-rio-trig-2.1.4.jar')
implementation files('libs/rdf4j-rio-trix-2.1.4.jar')
implementation files('libs/rdf4j-rio-turtle-2.1.4.jar')
implementation files('libs/rdf4j-util-2.1.4.jar')
implementation files('libs/slf4j-api-1.7.22.jar')
implementation files('libs/trove4j-3.0.3.jar')
implementation files('libs/xz-1.6.jar')
implementation files('libs/org.semanticweb.hermit-1.3.8.500.jar')

该应用程序正在建设中。但是在运行时,它崩溃抛出下面的错误:

java.lang.ExceptionInInitializerError
    at com.google.inject.internal.cglib.core.$MethodWrapper.create(MethodWrapper.java:34)
    at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate(DuplicatesPredicate.java:25)
    at com.google.inject.internal.cglib.core.$CollectionUtils.filter(CollectionUtils.java:52)
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:69)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:77)
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:231)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:252)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:203)
    at com.google.inject.internal.ProviderMethod.create(ProviderMethod.java:69)
    at com.google.inject.internal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:275)
    at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:144)
    at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:123)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:349)
    at com.google.inject.spi.Elements.getElements(Elements.java:110)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
    at com.google.inject.Guice.createInjector(Guice.java:99)
    at com.google.inject.Guice.createInjector(Guice.java:73)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at org.semanticweb.owlapi.apibinding.OWLManager.createInjector(OWLManager.java:104)
    at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:44)
    at com.example.newcalculator.OwlApiSecond.creatingOntology(OwlApiSecond.java:37)
    at com.example.newcalculator.MainActivity$1.onClick(MainActivity.java:41)
    at android.view.View.performClick(View.java:6256)
    at android.view.View$PerformClick.run(View.java:24701)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
 Caused by: com.google.inject.internal.cglib.core.$CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:256)
    at com.google.inject.internal.cglib.core.$KeyFactory$Generator.create(KeyFactory.java:149)
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:117)
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:109)
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:105)
    at com.google.inject.internal.cglib.core.$MethodWrapper.<clinit>(MethodWrapper.java:23)
    at com.google.inject.internal.cglib.core.$MethodWrapper.create(MethodWrapper.java:34) 
    at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate(DuplicatesPredicate.java:25) 
    at com.google.inject.internal.cglib.core.$CollectionUtils.filter(CollectionUtils.java:52) 
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:69) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:77) 
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:231) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65) 
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:252) 
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:203) 
    at com.google.inject.internal.ProviderMethod.create(ProviderMethod.java:69) 
    at com.google.inject.internal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:275) 
    at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:144) 
    at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:123) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:349) 
    at com.google.inject.spi.Elements.getElements(Elements.java:110) 
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) 
    at com.google.inject.Guice.createInjector(Guice.java:99) 
    at com.google.inject.Guice.createInjector(Guice.java:73) 
    at com.google.inject.Guice.createInjector(Guice.java:62) 
    at org.semanticweb.owlapi.apibinding.OWLManager.createInjector(OWLManager.java:104) 
    at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:44) 
    at com.example.newcalculator.OwlApiSecond.creatingOntology(OwlApiSecond.java:37) 
    at com.example.newcalculator.MainActivity$1.onClick(MainActivity.java:41) 
    at android.view.View.performClick(View.java:6256) 
    at android.view.View$PerformClick.run(View.java:24701) 
    at android.os.Handler.handleCallback(Handler.java:789) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6541) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at com.google.inject.internal.cglib.core.$ReflectUtils.defineClass(ReflectUtils.java:395)
    at com.google.inject.internal.cglib.core.$ReflectUtils.defineClass(ReflectUtils.java:390)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:235)
    at com.google.inject.internal.cglib.core.$KeyFactory$Generator.create(KeyFactory.java:149) 
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:117) 
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:109) 
    at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java:105) 
    at com.google.inject.internal.cglib.core.$MethodWrapper.<clinit>(MethodWrapper.java:23) 
    at com.google.inject.internal.cglib.core.$MethodWrapper.create(MethodWrapper.java:34) 
    at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate(DuplicatesPredicate.java:25) 
    at com.google.inject.internal.cglib.core.$CollectionUtils.filter(CollectionUtils.java:52) 
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:69) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:77) 
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:231) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65) 
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:252) 
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:203) 
    at com.google.inject.internal.ProviderMethod.create(ProviderMethod.java:69) 
    at com.google.inject.internal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:275) 
    at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:144) 
    at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:123) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:349) 
    at com.google.inject.spi.Elements.getElements(Elements.java:110) 
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) 
    at com.google.inject.Guice.createInjector(Guice.java:99) 
    at com.google.inject.Guice.createInjector(Guice.java:73) 
    at com.google.inject.Guice.createInjector(Guice.java:62) 
    at org.semanticweb.owlapi.apibinding.OWLManager.createInjector(OWLManager.java:104) 
    at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:44) 
    at com.example.newcalculator.OwlApiSecond.creatingOntology(OwlApiSecond.java:37) 
    at com.example.newcalculator.MainActivity$1.onClick(MainActivity.java:41) 
    at android.view.View.performClick(View.java:6256) 
    at android.view.View$PerformClick.run(View.java:24701) 
    at android.os.Handler.handleCallback(Handler.java:789) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6541) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
E/AndroidRuntime: Caused by: java.lang.UnsupportedOperationException: can't load this type of class file
        at java.lang.ClassLoader.defineClass(ClassLoader.java:591)
            ... 44 more

我想知道如何解决这个错误。我不确定究竟是什么导致它。任何帮助,将不胜感激。先感谢您。

android owl semantic-web ontology owl-api
1个回答
0
投票

堆栈跟踪没有提到无法加载哪个类,因此很难判断问题是在Guice还是在OWL-API中。

但是,OWLAPI 5.1.0相当陈旧。 5.1.10现已上市,以及HermiT 1.4.3.517。我建议更新到这些版本。

在您的情况下可能相关的一个变化是OWLAPI的最新版本不再使用Guice。我没有在Android上测试它们,但是值得一试,看看这里的问题是否完全在Guice中。

© www.soinside.com 2019 - 2024. All rights reserved.