当前位置: 首页 > 知识库问答 >
问题:

Gradle JavaExec任务失败,在Android Studio中找不到库类错误

柳飞飙
2023-03-14

我正在尝试将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"
    }

}

并放置在构建的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: omlite-android: 4.48'转换为文件。)

我看不到如何让JavaExec任务使用远程回购找到所需的类。

compile 'com.j256.ormlite:ormlite-android:4.48'

在主要项目依赖项中使用,效果良好。

共有2个答案

全流觞
2023-03-14

在我的例子中,它与错误设置的环境变量有关:export LOCAL_LIB=D:\LIB vs export LOCAL_LIB=“D:\LIB”

所以,引用是个问题。

常飞翼
2023-03-14

这里可能有点误解您的意思,但可能是您使用的依赖项错误吗?也许这是合适的

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}")

...
}

有点不确定这是否有效。configurations.orm我认为应该会产生影响。

 类似资料:
  • 在更换笔记本电脑并更新到Android Studio版本0.8.2后,我尝试构建项目时遇到此错误。 失败:生成失败,出现异常。 > 出了什么问题:在根项目'MyProject'中找不到任务。 Try:运行gradle任务以获取可用任务的列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。 构建失败 以下是我的Gradle文件: 顶级

  • 错误:任务执行失败 ': app:使用合并Java Res For Debug转换资源'。 com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException: APK META-INF/LICENSE File1中复制的重复文件: C:\用户Jithin-P

  • 我在尝试构建应用程序时出现以下错误: plhd--7/>OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDa

  • 我正试图编写一个简单的java程序,通过Spark从Cassandra读取数据。我是在POC级别做这件事的。我的代码是这样的 当我运行上述代码时,我得到了以下异常(下面粘贴了堆栈跟踪) 15/01/15 19:22:41警告调度程序。TaskSetManager:在0.0阶段(TID 1,ct-0094)中丢失了task 1.0:java。lang.ClassNotFoundException:c

  • 问题内容: 我最近在Android项目中启动了一个新的默认项目。每当我尝试启动应用程序时,都会发生此错误: build.gradle(模块:应用) build.gradle(项目:EmerGencyHelp) 我的错误是 请帮助我,谢谢, 问题答案: 可能您没有在项目中正确添加suport-v4库。 检查一下: 您已将此库添加到需要它的所有模块中(如果您的项目中有多个模块,例如主模块和库模块)。