【问题标题】:Android gradle plugin update to 3.3.0 throw NullPointerExceptionAndroid gradle 插件更新到 3.3.0 抛出 NullPointerException
【发布时间】:2019-06-10 19:21:21
【问题描述】:

我刚刚更新到 Android Studio 3.3,并尝试将 Gradle 插件更新到 3.3.0,但项目构建失败。

该项目是一个带有应用程序的库(使用该库)。尝试了一切:清除、重建、重置、删除 .gradle 目录,甚至在没有运气的情况下重新启动计算机。有什么想法吗?

这是堆栈跟踪

org.gradle.api.ProjectConfigurationException:配置项目“:screenz_library”时出现问题。
    |95 次内部通话|
    在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    在 java.lang.Thread.run(Thread.java:745)
引起:com.android.build.gradle.internal.crash.ExternalApiUsageException:java.lang.NullPointerException
    在 com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:137)
    在 com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:777)
    在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    在 com.android.build.gradle.BasePlugin.lambda$createTasks$4(BasePlugin.java:651)
    在 com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt:37)
    在 com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt)
    在 org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1$1.run(DefaultListenerBuildOperationDecorator.java:155)
    在 org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:58)
    在 org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:152)
    在 org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    在 org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    在 org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction.execute(DefaultListenerBuildOperationDecorator.java:149)
    在 org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)
    在 org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)
    在 org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
    在 org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
    在 org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
    在 org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
    在 org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
    在 org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
    在 org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
    在 org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
    在 org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    在 com.sun.proxy.$Proxy29.afterEvaluate(未知来源)
    在 org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:187)
    在 org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:184)
    在 org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1418)
    在 org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:193)
    ... 95 更多
引起:java.lang.NullPointerException
    在 org.gradle.api.internal.tasks.DefaultTaskDependency.add(DefaultTaskDependency.java:185)
    在 org.gradle.api.internal.AbstractTask$12.run(AbstractTask.java:430)
    在 org.gradle.api.internal.tasks.TaskMutator.mutate(TaskMutator.java:40)
    在 org.gradle.api.internal.AbstractTask.dependsOn(AbstractTask.java:428)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在 java.lang.reflect.Method.invoke(Method.java:498)
    在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:169)
    在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
    在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
    在 com.google.gms.googleservices.GoogleServicesPlugin.handleVariant(GoogleServicesPlugin.groovy:206)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在 java.lang.reflect.Method.invoke(Method.java:498)
    在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    在 org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
    在 org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
    在 org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:78)
    在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:398)
    在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:338)
    在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
    在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
    在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177)
    在 com.google.gms.googleservices.GoogleServicesPlugin$_setupPlugin_closure6.doCall(GoogleServicesPlugin.groovy:148)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在 java.lang.reflect.Method.invoke(Method.java:498)
    在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
    在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
    在 groovy.lang.Closure.call(Closure.java:418)
    在 groovy.lang.Closure.call(Closure.java:434)
    在 org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
    在 org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    在 org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
    在 org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:167)
    在 org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:225)
    在 org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:244)
    在 org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:233)
    在 com.android.build.gradle.LibraryExtension.addVariant(LibraryExtension.java:93)
    在 com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:134)
    ... 124 更多

【问题讨论】:

  • 尝试失效并重启,然后清理项目。
  • 是的,试过了,没有运气

标签: android gradle


【解决方案1】:

我只是在尝试其他事情时找到了解决方案。 出于某种原因,我的库的 gradle 文件中有 Google 服务插件,所以我删除了它并且项目构建没有问题。

我删除了这一行

apply plugin: 'com.google.gms.google-services'

【讨论】:

  • 上帝保佑你!此行为在 google-services 插件版本
  • 如果我删除它,模块中的 firebase 登录将无法正常工作。
  • 据我所知,Firebase Auth 只需要 Firebase Core firebase.google.com/docs/auth/android/start
  • 很好,对我来说也有两次,一次用于根应用程序模块,一次用于依赖库模块,将其从库中删除,修复了 NPE。
  • 我只花了一个小时就找到了这个答案。没有它,谁知道要花多长时间才能弄清楚。我真的很讨厌 Android Studio 这样的废话。谢谢!
【解决方案2】:

在项目级 build.gradle 中更新 google play 服务类路径

classpath 'com.google.gms:google-services:4.3.3'

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2021-12-02
    • 2019-03-07
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多