2017-02-17 4 views
2

Androidスタジオを使用してアンドロイドアプリを開発しており、今日Google Playサービスの新しいバージョンがあるというメッセージが届きました。PlayServices/Firebaseを10.0.1から10.2.0にアップデートする際の問題

Google Playサービス分析、広告、タグマネージャを使用しています。 Firebaseの分析/メッセージング/クラッシュ

私は私のbuild.gradleに持っていたバージョンは10.0.1れ、新しいバージョンが10.2.0 ですが、私はそれを変更すると、起動時にアプリがクラッシュすると:

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.sega.segaid, PID: 15749 
java.lang.NoSuchMethodError: com.google.android.gms.internal.zzaac.zza 
    at com.google.firebase.FirebaseApp.zzcl(Unknown Source) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1591) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1562) 
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
    at android.app.ActivityThread.installProvider(ActivityThread.java:4964) 
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4559) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4499) 
    at android.app.ActivityThread.access$1600(ActivityThread.java:153) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5191) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:810) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    at dalvik.system.NativeStart.main(Native Method) 

これは誤りです私の側に?アプリが起動する前にクラッシュします。私が変更した唯一の事は、プレイサービスとfirebaseの使用された依存関係を更新することです。

最後に起こったことは、Firebaseのバグで、数日後にGoogleによって修正されました。

EDIT: build.gradleの依存関係

compile 'com.android.support:appcompat-v7:25.1.1' 
compile 'com.android.support:support-v13:25.1.1' 
compile 'com.android.support:design:25.1.1' 

compile 'com.google.android.gms:play-services-base:10.2.0' 
compile 'com.google.android.gms:play-services-tagmanager:10.2.0' 
compile 'com.google.android.gms:play-services-ads:10.2.0' 
compile 'com.google.android.gms:play-services-analytics:10.2.0' 
compile 'com.google.firebase:firebase-core:10.2.0' 
compile 'com.google.firebase:firebase-analytics:10.2.0' 
compile 'com.google.firebase:firebase-messaging:10.2.0' 
compile 'com.google.firebase:firebase-crash:10.2.0' 

SOLUTION: 私はすべてのキャッシュをクリアしても、毎回それを書き出す場合は代わりにDEFとバージョンを追加しました。それは今働いた。みんなありがとう。

私は最初の試みでライブラリの1つを更新するのを忘れてしまったと思うので、私は解決策としてrencsaridoganの答えを選びました。しかし、キャッシュをクリアする必要もありました(下記のコメントでAviが推奨するように)。

+0

グラデーションファイルを追加してください。また、プロジェクトのクリーニングと同期を試みてください。 –

+1

クリーンで再構築してみてください。 – Avi

+2

あなたのすべてのGoogleプレイサービスとfirebaseのバージョンがgradleファイルで "10.2.0"であることを確認してください。 –

答えて

2

official documentationに記載されているように、Google PlayサービスとFirebaseの使用について2つの重要なことがあります。

は、Googleの最新のクラスパスがあなたのルートレベルのGradleのでサービスを再生宣言する必要があり、与えられた文書から引用例:また

buildscript { 
    // ... 
    dependencies { 
     // ... 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

、コメントはすべてのGoogleがサービスを再生するプロジェクトで提案するようFirebaseパッケージのバージョンが同じである必要があります。これは以下の方法に従うことができます(これは簡単です)。

def googlePlayLibVersion = "10.2.0" 
def googleFirebaseLibVersion = "10.2.0" 

ext { 
    annotations = "com.android.support:support-annotations:${supportLibVersion}" 
    firebaseAnalytics = "com.google.firebase:firebase-core:${googleFirebaseLibVersion}" 
    firebaseCrash = "com.google.firebase:firebase-crash:${googleFirebaseLibVersion}" 
    googlePlayAds = "com.google.android.gms:play-services-ads:${googlePlayLibVersion}" 
    googlePlayGcm = "com.google.android.gms:play-services-gcm:${googlePlayLibVersion}" 
    googlePlayAnalytics = "com.google.android.gms:play-services-analytics:${googlePlayLibVersion}" 
} 
+0

私は自分のルートレベルのgradleに含まれています。デフは素敵なアイデアのように見える、私はそれを試してみる。 – Cubicle257

+0

@ Cubicle257を共有して幸せです!これがあなたを助けることを願っています – rencsaridogan

+0

私もキャッシュをクリアする必要がありましたが、解決策として答えが選ばれました。 – Cubicle257

関連する問題