首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在空对象上调用方法systemProperty() -- android和gradle

无法在空对象上调用方法systemProperty() -- android和gradle
EN

Stack Overflow用户
提问于 2015-09-09 08:47:48
回答 1查看 9.4K关注 0票数 4

在构建我的应用程序时,我面临着一个奇怪的例外。

下面是我在主应用程序文件夹(而不是应用程序文件夹)中的项目specificbuild.gradle文件。

代码语言:javascript
复制
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1'
    }
}

apply plugin: 'java'

dependencies {
    testCompile 'junit:junit:4.12'
    testCompile "org.mockito:mockito-core:1.9.5"
}

allprojects {
    repositories {
        jcenter()
    }
}

但是,如果我将gradle依赖项更改为1.2.3版本,则可以修复这个问题,它与1.3.0一起使用fine.but --它甚至没有启动构建,并且不能在空对象异常上提供调用方法systemProperty()。

类路径'com.android.tools.build:gradle:1.2.3‘

android studio日志文件中的详细信息显示:--

代码语言:javascript
复制
2015-09-09 15:28:18,211 [120924807]   WARN - nal.AbstractExternalSystemTask - Cannot invoke method systemProperty() on null object 
com.intellij.openapi.externalSystem.model.ExternalSystemException: Cannot invoke method systemProperty() on null object
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectImportErrorHandler.createUserFriendlyError(AbstractProjectImportErrorHandler.java:106)
    at org.jetbrains.plugins.gradle.service.project.BaseProjectImportErrorHandler.getUserFriendlyError(BaseProjectImportErrorHandler.java:158)
    at org.jetbrains.plugins.gradle.service.project.BaseGradleProjectResolverExtension.getUserFriendlyError(BaseGradleProjectResolverExtension.java:438)
    at com.android.tools.idea.gradle.project.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:348)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver

有人能解释一下为什么不使用1.3.0的gradle插件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-15 02:03:49

我也有过同样的问题。请参阅this链接。

插件与Gradle插件的v1.3.0不兼容,并且在Robolectro3.0中已经被废弃,我怀疑您可能正在使用它。只要从您的配置中删除它(以及您的应用程序的build.gradle文件中对它的任何引用),就可以了。

另外,fwiw -在查看Studio日志文件时,您是在拉正确的线程。您只需查看在引用的堆栈框架之前的堆栈框架,就可以获得更多关于根本原因的具体线索:

代码语言:javascript
复制
Caused by: java.lang.NullPointerException: Cannot invoke method systemProperty() on null object
    at org.robolectric.gradle.RobolectricPlugin$_apply_closure1_closure2.doCall(RobolectricPlugin.groovy:28)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:110)
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:115)
    at org.gradle.api.DomainObjectCollection$all$3.call(Unknown Source)
    at org.robolectric.gradle.RobolectricPlugin$_apply_closure1.doCall(RobolectricPlugin.groovy:19)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy10.afterEvaluate(Unknown Source)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32474981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档