我之前一直使用谷歌播放服务8.3.0没有任何问题。我正在寻求升级到谷歌播放服务8.4.0。我使用以下播放库:
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
当我启动应用程序时,它会崩溃,并显示以下日志。
12-27 03:01:33.915 20567-20567/com.ryanc.android.stage.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ryanc.android.stage.debug, PID: 20567
java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.android.gms.common.internal.zzx' appears in /data/app/com.ryanc.android.stage.debug-1/base.apk:classes17.dex)
at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source)
at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1696)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
at android.app.ActivityThread.installProvider(ActivityThread.java:4999)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4594)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
编辑:不确定它是否有帮助,但在@gerardnimo请求这里是完整的build.gradle文件。另外值得注意的是,我已尝试从我的计算机上清理构建并删除并重新安装播放服务sdks。
apply plugin: 'com.android.application'
apply plugin: 'checkstyle'
def SDK = "$MIN_SDK_VERSION"
def V_CODE = "$VERSION_CODE"
buildscript {
repositories {
mavenCentral()
}
}
repositories {
mavenCentral()
jcenter()
maven { url 'https://zendesk.artifactoryonline.com/zendesk/repo' }
maven { url "http://kahuna.github.io/kahuna-android/sdk" }
}
android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.ryanc.android"
minSdkVersion SDK.toInteger()
targetSdkVersion 23
versionCode V_CODE.toInteger()
versionName "$APP_VERSION.$BUILD_NUMBER"
multiDexEnabled true
}
signingConfigs {
debug {
storeFile file("$DEBUG_KEYSTORE_PATH")
storePassword "$DEBUG_KEYSTORE_PASSWORD"
keyAlias "$DEBUG_KEY_ALIAS"
keyPassword "$DEBUG_KEY_PASSWORD"
}
release {
storeFile file("$KEYSTORE_PATH")
storePassword "$KEYSTORE_PASSWORD"
keyAlias "$KEY_ALIAS"
keyPassword "$KEY_PASSWORD"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
productFlavors {
prod {
applicationId "com.ryanc.android"
}
stage {
applicationId "com.ryanc.android.stage"
}
qa {
applicationId "com.ryanc.android.qa"
}
dev {
applicationId "com.ryanc.android.dev"
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
def supportVersion = "23.1.1"
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':api')
compile "com.android.support:support-v4:$supportVersion"
compile "com.android.support:appcompat-v7:$supportVersion"
compile "com.android.support:design:$supportVersion"
compile 'com.facebook.android:facebook-android-sdk:4.8.1'
compile 'uk.co.chrisjenx:calligraphy:2.0.1'
compile "com.android.support:cardview-v7:$supportVersion"
compile "com.android.support:recyclerview-v7:$supportVersion"
compile "com.android.support:support-v13:$supportVersion"
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.5'
compile 'com.fasterxml.jackson.core:jackson-core:2.4.5'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.5'
compile 'joda-time:joda-time:2.5'
compile 'com.squareup.retrofit:retrofit:1.7.1'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
compile 'com.squareup.okhttp:okhttp:2.5.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.netflix.rxjava:rxjava-core:0.20.7'
compile 'com.netflix.rxjava:rxjava-android:0.20.7'
compile 'com.squareup.dagger:dagger:1.2.2'
compile 'com.squareup.mortar:mortar:0.16'
compile 'com.squareup.flow:flow:0.8'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.jakewharton.timber:timber:2.5.1'
compile 'com.braintreepayments:encryption:2.0.0'
compile 'com.newrelic.agent.android:android-agent:5.3.2'
compile 'com.instabug.library:instabugsupport:1.7.1'
compile 'net.hockeyapp.android:HockeySDK:3.0.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.rengwuxian.materialedittext:library:2.1.4'
compile 'com.android.support:multidex:1.0.1'
compile 'com.mixpanel.android:mixpanel-android:4.6.2'
compile 'com.roomorama:caldroid:2.2.0'
compile 'com.squareup.phrase:phrase:1.1.0'
compile 'com.zendesk:sdk:1.5.0.1'
compile 'com.flipboard:bottomsheet-core:1.4.3'
compile 'com.kahuna.sdk:kahuna:2.3.1'
compile 'io.branch.sdk.android:library:1.+''
}
答案 0 :(得分:21)
播放服务库的版本应该相同,例如:
DO
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
DONT
compile 'com.google.android.gms:play-services-maps:7.8.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
答案 1 :(得分:7)
在8.4.0上有选择地编译Google Play服务API时,我也遇到了问题(8.3.0 - > 8.4.0)。
错误:
Could not find method com.google.android.gms.common.internal.zzx.zzy
升级前:
compile 'com.google.android.gms:play-services-maps:8.3.0'
升级后(不起作用):
compile 'com.google.android.gms:play-services-maps:8.4.0'
升级后(工作正常):
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
结论:似乎某些播放服务现在有一些必须明确指定的依赖关系,例如:maps - > GCM。
答案 2 :(得分:4)
我能帮你解决这个问题。我的同事能够毫无问题地升级。我去了我的sdk / extras文件夹,看到我的差别很大。所以我移动我的文件夹复制了我的同事并且它有效。
我认为sdk文件夹中的文件夹和其他内容刚刚进入奇怪的状态,清除文件夹和重新下载也可能有效。
答案 3 :(得分:1)
我刚才遇到了这个问题。我从7.8.0升级到8.4.0并收到了与您相同的错误。重建和/或清理项目对我有用。
答案 4 :(得分:1)
我遇到同样的问题并通过正确配置proguard规则来解决此问题。
我在这里做了如下:
首先,我在proguard-rules.pro中排除了google类的混淆:
-keep public class com.google.** {*;}
其次我在build.gradle中启用了此minifyEnabled
,如下所示:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.e2e.quiz"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.android.gms:play-services-gcm:9.2.1'
compile 'com.google.android.gms:play-services-analytics:9.2.1'
compile 'com.google.android.gms:play-services-ads:9.2.1'
compile project(':ast-dst')
}
答案 5 :(得分:0)
我认为你应该包含相同版本的-base库。然后它又开始工作了。
答案 6 :(得分:0)
我在浏览official tutorial时遇到了同样的问题。
解决方案是改变
classpath 'com.google.gms:google-services:2.0.0-alpha6'
到
classpath 'com.google.gms:google-services:3.0.0'
我在sample on the github找到了正确的版本号。
答案 7 :(得分:0)
从SDK管理器中删除并重新安装Google服务并删除项目内容/ .gradle /为我解决了
答案 8 :(得分:0)
compile 'com.google.android.gms:play-services:+'
compile 'com.google.firebase:firebase-core:+'
什么对我有用