首页 > 解决方案 > 如何在android上使用jena ontology api?

问题描述

我是这个领域的新手。我使用jena在eclipse上构建了一个本体项目。但是,我想在 Android 上使用它。我找到了 androidjena,并按照此处的说明进行操作 我的 android 应用程序的 minSdkVersion 21。我下载了 Jena 模块,然后放入 D:\myproject.gradle

在我在 build.gradle 上添加这个之后:

allprojects {
    repositories {
        google()
        jcenter()
        MavenLocal()
    }
}

dependencies {
    ...
    implementation 'mobi.seus.jena:jena-android-arq:2.13.0'
}
android {
    ...
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
}

然后我同步了项目,这里出现错误

Could not find method MavenLocal() for arguments [] on repository container

我错过了什么吗?还是我把耶拿模块放错了地方?请帮助找出问题所在。谢谢!

标签: javaandroidmavenjenaontology

解决方案


问题 #1 - 根据您链接到的页面上的说明,您应该添加MavenLocal()到文件的repositories部分build.gradle。你似乎没有这样做。

更正- 根据Gradle 手册第 460 页1中的示例,它应该是mavenLocal()。我认为 Gradle 是区分大小写的。如果是,则 Jena 指令有问题。

问题 #2 - 根据说明,它应该说“编译”......但我认为在 gradle 3.0 中发生了变化

问题 #3 - 说明还说:

目前,工件未部署到公共存储库。如果您想在团队中使用它们,您应该将它们部署到您自己的 Maven 存储库或将 jars 添加为非托管依赖项。

你这样做了吗?或者您是否已执行以下操作?

创建修改后的 Jena 包:

$ cd jena-android
$ mvn install

这会将在 Android 上运行的修改后的 Jena 包安装到您的本地 Maven 存储库中。

关键是您不能只告诉 Maven / Gradle 从公共 Maven 存储库中提取 Jena 工件。工件必须构建并安装到您的本地存储库中,并且(如果您在团队中工作)推送到您的(通常是私有的)团队存储库。


1 - ...或搜索“在评估项目之前使用初始化脚本执行额外配置”。


推荐阅读