简体   繁体   English

如何解决“java.lang.NullPointerException:无法调用方法 startsWith()”?

[英]How to resolve "java.lang.NullPointerException: Cannot invoke method startsWith()"?

I am new to groovy. I am writing a shared library for Jenkins pipeline.我是 groovy 的新手。我正在为 Jenkins 管道编写一个共享库。 I am facing this java.lang.NullPointerException exception.我正面临这个java.lang.NullPointerException异常。 Below is my code:下面是我的代码:

def call(Map config = [:], env) {
    
            pipeline {
                defaults = [
                        'pipelineStrategy'          : 'deployOnly',
                        'buildSystem'               : 'maven'
                ] + config
        
                environment {
                    BRANCH_NAME = "${GIT_BRANCH.split("/")[1]}"
                }
                boolean autoDeploy = false;
                if (env.BRANCH_NAME.equals('master') || env.BRANCH_NAME.startsWith('hotfix-')){
                    autoDeploy = true;
                }
        }
}

Below are my Jenkins build logs:以下是我的 Jenkins 构建日志:

java.lang.NullPointerException: Cannot invoke method startsWith() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
    at pipelineStrategy.call(pipelineStrategy.groovy:21)

The only startsWith() in the code you posted is in您发布的代码中唯一的 startsWith() 位于

env.BRANCH_NAME.startsWith('hotfix-')

and you are being told that there is a null object. It means that你被告知有一个 null object。这意味着

env.BRANCH_NAME

is null. You will need to think why or how to handle that situation.是 null。您需要考虑为什么或如何处理这种情况。 One way might be to use一种方法可能是使用

String.valueOf(env.BRANCH_NAME).startsWith('hotfix-')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NullPointerException:无法在 null 上调用方法 get() object - java.lang.NullPointerException: Cannot invoke method get() on null object java.lang.NullPointerException:无法在空对象上调用方法queryForList() - java.lang.NullPointerException: Cannot invoke method queryForList() on null object 放心 - post() - java.lang.NullPointerException: 无法在 null 对象上调用方法 trim() - Rest Assured - post() - java.lang.NullPointerException: Cannot invoke method trim() on null object Android + java.lang.NullPointerException:尝试调用接口方法 - Android + java.lang.NullPointerException: Attempt to invoke interface method java.lang.NullPointerException:尝试调用虚拟方法+ Firebase - java.lang.NullPointerException: Attempt to invoke virtual method + Firebase Android Studio java.lang.NullPointerException:尝试调用虚拟方法 - Android Studio java.lang.NullPointerException: Attempt to invoke virtual method 调用Method.invoke时获取java.lang.NullPointerException - Getting java.lang.NullPointerException when calling Method.invoke TabLayout 中的“java.lang.NullPointerException:尝试调用虚拟方法” - “java.lang.NullPointerException: Attempt to invoke virtual method” in TabLayout 我该如何解决这个 java.lang.NullPointerException? - how do i resolve this java.lang.NullPointerException? java.lang.NullPointerException:无法调用“java.lang.reflect.AccessibleObject.setAccessible(boolean)”因为“ao”是 null - java.lang.NullPointerException: Cannot invoke "java.lang.reflect.AccessibleObject.setAccessible(boolean)" because "ao" is null
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM