Android Studio 和 openimaj
Android Studio and openimaj
我目前正在尝试使用来自 openimaj Java 库的依赖项构建一个 android 工作室项目。
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.mapinguari.myapplication"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'org.openimaj:openimaj:1.3.1'
}
是我的模块构建文件。它在同步到 IDE 时报告没有错误。
然而,当我尝试在其中一个源文件中构造任何 类 时,Android Studio 无法识别来自 openimaj 依赖项的任何 类。
非常感谢任何帮助。
谢谢!
我认为这可能是因为您已经指定了一个非 jar OpenIMAJ 依赖项(具体来说,您已经告诉它 link 针对 OpenIMAJ 主 pom 文件,该文件仅包含对不同子文件的引用模块)。您可能需要实际选择您想要的特定模块 - 例如,如果您的应用程序正在进行图像处理,则添加依赖项 org.openimaj:image-processing:1.3.1
.
编辑:
似乎 batik svg 库在某处有一个循环依赖关系,它打破了 Gradle(参见 https://issues.apache.org/jira/browse/BATIK-1098)。这就是导致最终 WhosebugError
的原因。此外,某些东西正在引入 xml-api,这将与 Android 发生冲突。假设您不介意没有 SVG 图像支持,那么以下应该有效:
repositories {
mavenCentral()
maven {
url "http://maven.openimaj.org"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:18.+'
compile('org.openimaj:image-processing:1.3.1') {
exclude group: 'org.apache.xmlgraphics'
exclude group: 'xml-apis'
}
}
您可能还想为您的应用中不需要的依赖项添加额外的排除项 - 似乎只包含 org.openimaj:image-processing
会引入很多几乎肯定不需要的东西(我'我们在这里为此创建了一个问题:https://github.com/openimaj/openimaj/issues/97)。
我目前正在尝试使用来自 openimaj Java 库的依赖项构建一个 android 工作室项目。
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.mapinguari.myapplication"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'org.openimaj:openimaj:1.3.1'
}
是我的模块构建文件。它在同步到 IDE 时报告没有错误。
然而,当我尝试在其中一个源文件中构造任何 类 时,Android Studio 无法识别来自 openimaj 依赖项的任何 类。
非常感谢任何帮助。
谢谢!
我认为这可能是因为您已经指定了一个非 jar OpenIMAJ 依赖项(具体来说,您已经告诉它 link 针对 OpenIMAJ 主 pom 文件,该文件仅包含对不同子文件的引用模块)。您可能需要实际选择您想要的特定模块 - 例如,如果您的应用程序正在进行图像处理,则添加依赖项 org.openimaj:image-processing:1.3.1
.
编辑:
似乎 batik svg 库在某处有一个循环依赖关系,它打破了 Gradle(参见 https://issues.apache.org/jira/browse/BATIK-1098)。这就是导致最终 WhosebugError
的原因。此外,某些东西正在引入 xml-api,这将与 Android 发生冲突。假设您不介意没有 SVG 图像支持,那么以下应该有效:
repositories {
mavenCentral()
maven {
url "http://maven.openimaj.org"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:18.+'
compile('org.openimaj:image-processing:1.3.1') {
exclude group: 'org.apache.xmlgraphics'
exclude group: 'xml-apis'
}
}
您可能还想为您的应用中不需要的依赖项添加额外的排除项 - 似乎只包含 org.openimaj:image-processing
会引入很多几乎肯定不需要的东西(我'我们在这里为此创建了一个问题:https://github.com/openimaj/openimaj/issues/97)。