首页 > 解决方案 > 詹金斯:':app:processDevManifest'任务步骤中的NullPointerException

问题描述

我是第一次从事 Android Gradle 项目。我成功地在我的 Mac 上使用命令行在本地运行了 Android 项目./gradlew assembleDev

现在,我遇到的问题是为该项目运行 Jenkins 作业。我的詹金斯工作中有以下内容:

环境变量:

  1. 在 Jenkins 配置 > 全局属性 > 环境变量 > a. ANDROID_HOME、GRADLE_USER_HOME 和 JAVE_HOME

执行外壳步骤:

  1. 我的詹金工作中只有一步(./gradlew assembleDev)。
  2. 请注意:我也尝试过,也尝试过step 而gradle assembleDev不是. (所有这些试验都给了我下面同样的错误)./gradlew assembleDevInvoke Gradle ScriptExecute Shell

当我运行此作业时,我收到此错误:

13:11:08 + ./gradlew assembleDev --stacktrace
13:11:09 Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
13:11:14 
13:11:14 > Configure project :app
13:11:14 WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
13:11:14 It will be removed at the end of 2019.
13:11:14 For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
13:11:14 To determine what is calling variant.getMergeResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
13:11:17 
13:11:17 > Task :app:objectboxPrepareBuild
13:11:17 > Task :app:preBuild
13:11:17 > Task :app:preDevBuild
13:11:17 > Task :app:compileDevAidl NO-SOURCE
13:11:17 > Task :app:checkDevManifest UP-TO-DATE
13:11:17 > Task :app:compileDevRenderscript NO-SOURCE
13:11:17 > Task :app:generateDevBuildConfig UP-TO-DATE
13:11:17 > Task :app:javaPreCompileDev UP-TO-DATE
13:11:17 > Task :app:mainApkListPersistenceDev UP-TO-DATE
13:11:17 > Task :app:mergeDevShaders UP-TO-DATE
13:11:17 > Task :app:compileDevShaders UP-TO-DATE
13:11:17 > Task :app:generateDevAssets UP-TO-DATE
13:11:17 > Task :app:mergeDevAssets UP-TO-DATE
13:11:17 > Task :app:processDevGoogleServices UP-TO-DATE
13:11:18 > Task :app:createDevCompatibleScreenManifests UP-TO-DATE
13:11:18 > Task :app:generateDevResValues UP-TO-DATE
13:11:18 > Task :app:generateDevResources UP-TO-DATE
13:11:18 > Task :app:processDevManifest FAILED
13:11:18 
13:11:18 FAILURE: Build failed with an exception.
13:11:18 
13:11:18 * What went wrong:
13:11:18 Execution failed for task ':app:processDevManifest'.
13:11:18 > java.lang.NullPointerException (no error message)
13:11:18 
13:11:18 * Try:
13:11:18 Run with --info or --debug option to get more log output. Run with --scan to get full insights.
13:11:18 
13:11:18 * Exception is:
13:11:18 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDevManifest'.
13:11:18    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)
13:11:18    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
13:11:18    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
13:11:18    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
13:11:18    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
13:11:18    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
13:11:18    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
13:11:18    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
13:11:18    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
13:11:18    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
13:11:18    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
13:11:18    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
13:11:18    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
13:11:18    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
13:11:18    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
13:11:18    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
13:11:18    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
13:11:18    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
13:11:18    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
13:11:18    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
13:11:18 Caused by: java.lang.NullPointerException
13:11:18    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:877)
13:11:18    at com.google.common.base.Joiner.toString(Joiner.java:452)
13:11:18    at com.google.common.base.Joiner.appendTo(Joiner.java:109)
13:11:18    at com.google.common.base.Joiner.appendTo(Joiner.java:152)
13:11:18    at com.google.common.base.Joiner.join(Joiner.java:195)
13:11:18    at com.google.common.base.Joiner.join(Joiner.java:185)
13:11:18    at com.google.common.base.Joiner.join(Joiner.java:211)
13:11:18    at com.android.build.gradle.tasks.ManifestProcessorTask.lambda$serializeMap$0(ManifestProcessorTask.java:192)
13:11:18    at com.google.common.collect.Iterators$6.transform(Iterators.java:785)
13:11:18    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47)
13:11:18    at com.google.common.collect.Iterators.addAll(Iterators.java:358)
13:11:18    at com.google.common.collect.Lists.newArrayList(Lists.java:147)
13:11:18    at com.google.common.collect.Iterables.castOrCopyToCollection(Iterables.java:306)
13:11:18    at com.google.common.collect.Iterables.toArray(Iterables.java:295)
13:11:18    at com.google.common.collect.Ordering.sortedCopy(Ordering.java:851)
13:11:18    at com.android.build.gradle.tasks.ManifestProcessorTask.serializeMap(ManifestProcessorTask.java:190)
13:11:18    at com.android.build.gradle.tasks.ProcessApplicationManifest.getManifestPlaceholders(ProcessApplicationManifest.java:402)
13:11:18    at com.android.build.gradle.tasks.ProcessApplicationManifest_Decorated.getManifestPlaceholders(Unknown Source)
13:11:18    at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1$1.create(AbstractNestedRuntimeBeanNode.java:75)
13:11:18    at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:341)
13:11:18    at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue$1.get(AbstractNestedRuntimeBeanNode.java:72)
13:11:18    at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
13:11:18    at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue.call(AbstractNestedRuntimeBeanNode.java:119)
13:11:18    at org.gradle.api.internal.tasks.properties.AbstractValidatingProperty.validate(AbstractValidatingProperty.java:37)
13:11:18    at org.gradle.api.internal.tasks.properties.DefaultTaskProperties.validate(DefaultTaskProperties.java:184)
13:11:18    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:54)
13:11:18    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
13:11:18    at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
13:11:18    at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
13:11:18    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
13:11:18    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
13:11:18    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
13:11:18    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
13:11:18    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
13:11:18    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
13:11:18    ... 24 more
13:11:18 
13:11:18 
13:11:18 * Get more help at https://help.gradle.org
13:11:18 
13:11:18 BUILD FAILED in 9s
13:11:18 12 actionable tasks: 2 executed, 10 up-to-date
13:11:19 Build step 'Execute shell' marked build as failure
13:11:19 Performing Post build task...

我在其他 Stackoverflow 答案中查看了类似的失败(不准确),但对我没有任何帮助。我不确定为什么它只在 Jenkins 上失败,但在我的本地(使用 Android 工作室或终端)上没有

标签: androidjenkinsgradle

解决方案


推荐阅读