gradle Android studio中出现错误:“0”;无法对空对象调用方法get();
我有一个项目与模块的数量,每一个是一个单独的应用程序。 我将Firebase添加到一个模块中,从那时起,另一个模块的gradle无法同步。 我不断得到:“不能在null对象上调用方法get()”,当我注释掉播放服务“依赖项”时,它就会消失。 我的毕业典礼是:gradle Android studio中出现错误:“0”;无法对空对象调用方法get();,android,gradle,groovy,google-play-services,Android,Gradle,Groovy,Google Play Services,我有一个项目与模块的数量,每一个是一个单独的应用程序。 我将Firebase添加到一个模块中,从那时起,另一个模块的gradle无法同步。 我不断得到:“不能在null对象上调用方法get()”,当我注释掉播放服务“依赖项”时,它就会消失。 我的毕业典礼是: buildscript { repositories { google() maven { url 'https://maven.fabric.io/public' } } depe
buildscript {
repositories {
google()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "xxxx"
minSdkVersion 14
targetSdkVersion 27
// multiDexEnabled true
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true;
}
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
}
顶级项目梯度:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
我使用gradle版本4.4和Android插件版本3.1.3
错误的堆栈
java.lang.NullPointerException: Cannot invoke method get() on null object
at
org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at
org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at
org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at
org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.google.gms.googleservices.GoogleServicesPlugin$1$_afterResolve_closure1.doCall(GoogleServicesPlugin.groovy:316)
at
sun.reflect.GeneratedMethodAccessor357.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.lang.reflect.Method.invoke(Method.java:498)
at
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at
groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at
groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
at
groovy.lang.Closure.call(Closure.java:414)
at
groovy.lang.Closure.call(Closure.java:430)
(another 150 lines)
任何建议都会有帮助,
干杯。如果您使用不同的模块,您必须将firebase配置添加到所有android模块中 因此
- 将实现'com.google.firebase:firebase core:x'添加到依赖项
- 添加应用插件:“com.google.gms.googleservices”
- 获取每个android模块的firebase配置(“google service.json”),并添加到每个模块中
在com、 google.gms.googleservices.GoogleServicesPlugin$1$\u afterResolve\u closure1.doCall(GoogleServicesPlugin.groovy:316)
@RosárioPereiraFernandes谢谢。将谷歌服务插件升级到4.0.1版解决了这个问题。谢谢,我的问题是其他模块不使用Firebase,我不想添加它们。在我看来,Firebase非常激进地说,如果你在项目中使用一个模块,你必须在所有模块中使用Firebase。顺便说一下,我的问题是一个模块使用了“com.google.android.gms:play services location”,但没有使用Firebase。只要我注释掉“实现”com.google.android.gms:play services location:15.0.1“从另一个模块开始,一切正常。在我添加了一个新的Wear模块后,我遇到了同样的问题……我完全按照你说的做了,并且成功了。我只需要根据Wear应用程序的包名编辑google service.json
中的包名。谢谢