我正在尝试在我的Android gradle脚本中集成ORMLite数据“编译器”实用程序的运行。我已经从各种来源确定了如何将其放置在具有所需依赖项的构建流中,以确保它在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'
用于主要项目依赖项,并且工作正常。
在这里可能会误解您的意思,但是可能是您使用的依赖关系错误吗?可能这是合适的
dependencies {
orm 'com.j256.ormlite:ormlite-android:4.48'
}
...
task "${databaseTaskName}" (type: JavaExec) {
main = 'com.barclaycard.bespoke.android.data.local.DatabaseConfigUtil'
classpath configurations.orm + files("${buildDir}/intermediates/classes/${variant.dirName}")
...
}
不确定“ +”是否有效。我认为configuration.orm应该会产生影响。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句