gradle - 复制类型的gradle任务中的空指针异常

标签 gradle

我正在编写一个任务,要从这样一个公用文件夹中的特定位置解压缩文件

class UnzipTask extends DefaultTask{
@TaskAction
def unzip(){
def library = []
    def comp = []


        project.fileTree( dir: 'libs', include: '*.jar').visit { FileVisitDetails details ->
            if ( !details.file.name.contains('dev') ) {
                library<< details.file.name
            }
        }
        library.each { fileName ->
            comp << fileName.substring( 0, fileName.length()-4 )
        }
        project.copy{
        comp.each { dist ->
                def dName = dist.substring( 3, dist.lastIndexOf('-') )
                def zipFile = project.file("${libs/${dist}.zip")
                println("this is zipFIle"+zipFile)
                from( project.zipTree( zipFile ))

                {
                    into ( "${distributionName}")
                }
    }

   }

  }

现在,当我执行任务时,它给了我NullPointerException,没有其他细节。我不知道还需要什么。

这是我在stackTrace中得到的:

造成原因:java.lang.NullPointerException
在org.gradle.api.internal.file.IdentityFileResolver.doResolve(IdentityFileResolver.java:39)
在org.gradle.api.internal.file.AbstractFileResolver.resolve(AbstractFileResolver.java:81)
在org.gradle.api.internal.file.AbstractFileResolver.resolve(AbstractFileResolver.java:63)
在org.gradle.api.internal.file.AbstractFileResolver.withBaseDir(AbstractFileResolver.java:59)
在org.gradle.api.internal.file.DefaultFileLookup.getFileResolver(DefaultFileLookup.java:41)
在org.gradle.api.internal.file.copy.FileCopier.getCopyVisitor(FileCopier.java:59)
在org.gradle.api.internal.file.copy.FileCopier.copy(FileCopier.java:49)
在org.gradle.api.internal.file.DefaultFileOperations.copy(DefaultFileOperations.java:134)
在org.gradle.api.internal.project.AbstractProject.copy(AbstractProject.java:776)
在org.gradle.api.internal.project.AbstractProject.copy(AbstractProject.java:772)
在org.gradle.api.Project $ copy $ 5.call(未知来源)
在com.vitalconnect.gradle.tasks.UnzipDistributionTask.unzipDist(UnzipDistributionTask.groovy:25)
在org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:227)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)处
在org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute(AbstractTask.java:585)
在org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute(AbstractTask.java:568)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
...更多60

最佳答案

您没有定义变量d,并且已经定义了dName两次。可能是问题吗?

关于gradle - 复制类型的gradle任务中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181888/

相关文章:

groovy - Gradle 清洁被认为是最新的

gradle - Gradle:构建失败后清理资源

android - 构建 Gradle 错误无法获取未知属性 'compile'

gradle - 需要捕获 UploadArchive 的事件并发布 Gradle 任务

java - Spring Boot 构建良好但抛出 javax.naming.NameNotFoundException : remaining name: env/jmx/runtime when running

android - 更新至Android Studio 3.0和gradle版本4.1:debug/manifest.xml中的未知元素<action>。真的不知道该怎么办?

javascript - 部署 java 后端和 Javascript 前端

用于拆分 APK 的 Android ProGuard 多个映射文件?

Android Studio/gradle 动态 apk 名称不同步

Android Studio - 无法解决依赖关系