Невозможно вызвать метод systemProperty() для нулевого объекта - Android Studio и Gradle

Я столкнулся со странным исключением при создании моего приложения.

Ниже приведен мой файл для конкретного проекта build.gradle в основной папке приложения (не в папке приложения).

// 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 она даже не запускает сборку и дает Cannot вызвать метод systemProperty() при исключении нулевого объекта.

classpath 'com.android.tools.build:gradle:1.2.3'

Подробности в журнале Android Studio показывает:---

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 плагин??

1 ответ

Решение

Я была такая же проблема. смотрите эту ссылку.

плагин не совместим с v1.3.0 плагина Gradle и устарел с Robolectric 3.0, который, как я подозреваю, вы можете использовать. просто удалите его (вместе со всеми ссылками на него в файле build.gradle вашего приложения) из вашей конфигурации, и все будет хорошо.

Кроме того, fwiw - вы проверяли правильные темы, просматривая файл журнала Studio. вам просто нужно взглянуть на кадр стека, предшествующий тому, на который вы ссылались, чтобы получить более конкретные подсказки относительно первопричины:

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)
Другие вопросы по тегам