【发布时间】:2014-10-08 15:04:15
【问题描述】:
我正在尝试将 ORMLite 数据“编译器”实用程序的运行集成到我的 android gradle 脚本中。从各种来源,我已经确定了如何将其放置在具有所需依赖项的构建流程中,以确保它在 java 编译后运行,第二个任务将使用 aapt 使用生成的数据库定义文件更新 apk。
我的主要问题是我的 OrmLiteConfigUtil 扩展类无法运行,因为 JavaExec 任务无法找到 OrmLiteConfigUtil 类
Error:Gradle: java.lang.ClassNotFoundException: com.j256.ormlite.android.apptools.OrmLiteConfigUtil
任务定义如下
applicationVariants.all { com.android.build.gradle.api.ApplicationVariant variant ->
def databaseTaskName = "${variant.name.capitalize()}DatabaseCompile"
def buildDir = getBuildDir()
def javaCompileTaskName = "compile" + variant.name.capitalize() + "Java"
def javaTask = project.tasks.findByName("${javaCompileTaskName}")
task "${databaseTaskName}" (type: JavaExec) {
main = 'com.barclaycard.bespoke.android.data.local.DatabaseConfigUtil'
dependencies {
classpath files("${buildDir}/intermediates/classes/${variant.dirName}")
}
}
if (javaTask != null) {
println "Adding post-compile hook to ${variant.name}"
javaTask.finalizedBy "${variant.name.capitalize()}DatabaseCompile"
}
}
并且被放置在 build.gradle 的 android 部分中
我尝试在任务的依赖项部分添加其他语句,但无济于事。
compile 'com.j256.ormlite:ormlite-android:4.48'
(任务执行过程中抛出ClassNotFoundException)
classpath 'com.j256.ormlite:ormlite-android:4.48'
和
classpath files('com.j256.ormlite:ormlite-android:4.48')
(无法将 URL 'com.j256.ormlite:ormlite-android:4.48' 转换为文件。)
我看不到如何让 JavaExec 任务使用远程存储库来查找所需的类。
compile 'com.j256.ormlite:ormlite-android:4.48'
在主项目依赖中使用,工作正常。
【问题讨论】:
标签: gradle android-studio android-gradle-plugin ormlite