0
我们有一个很大的项目,有许多依赖项,几种风格和构建类型。由于ButterKnife崩溃导致构建失败时分裂APK
我试图根据official instruction拆分APK。但是,构建失败。我在我的项目上尝试了相同的步骤,一切都很顺利。
Stacktrace指出ButterKnife存在问题,但我无法得到如何解决它。
:bankOK:compileBetaNewApiDebugJavaWithJavac UP-TO-DATE
:bankOK:mergeBetaNewApiDebugAssets UP-TO-DATE
:bankOK:processBetaNewApiHdpiDebugManifest
:bankOK:processBetaNewApiHdpiDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':bankOK:processBetaNewApiHdpiDebugResources'.
> Cannot invoke method replaceAll() on null object
,异常是:
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':bankOK:processBetaNewApiHdpiDebugResources'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.NullPointerException: Cannot invoke method replaceAll() on null object
at butterknife.plugin.ButterKnifePlugin$_apply_closure1$_closure2$_closure3$_closure4.doCall(ButterKnifePlugin.groovy:32)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:590)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:571)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
没有任何人有任何想法可能是什么问题?
post gradle也 –
谢谢。我已经解决了这个问题,下面回答。 我不认为我们的巨大gradle文件在这里有帮助,因为它在我们不分裂apk的时候效果很好,因为我成功地分割了其他项目,所以它不是一个简单的问题,可以在没有整个项目的情况下进行调试现场也有同样的问题。 – Gaket