2017-10-22 2 views
-1

私は自分のアプリケーションにFirebase認証を追加します。私は問題なくAPKを構築します。私はエミュレータ上でアプリケーションを実行し、私はsignOutボタンを押すと、アプリケーションが動作を停止します。 デバッガはこのことを示していますsignOutメソッド(Firebase認証から)が私のアプリケーションを停止します

10-22 17:56:30.246 2540-2540/com.doov.prototype E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: com.doov.prototype, PID: 2540 
                    java.lang.IncompatibleClassChangeError: Superclass com.google.android.gms.internal.zzbax of com.google.android.gms.internal.zzarm is an interface (declaration of 'com.google.android.gms.internal.zzarm' appears in /data/app/com.doov.prototype-EkSA0Y-MCxsGwYGtmSxRQQ==/split_lib_dependencies_apk.apk:classes33.dex) 
                     at com.google.android.gms.auth.api.Auth.<clinit>(Unknown Source:95) 
                     at com.firebase.ui.auth.util.GoogleSignInHelper.getInstance(GoogleSignInHelper.java:21) 
                     at com.firebase.ui.auth.AuthUI.signOut(AuthUI.java:175) 
                     at com.doov.prototype.SignedInActivity.signOut(SignedInActivity.java:38) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                     at android.view.View.performClick(View.java:6256) 
                     at android.view.View$PerformClick.run(View.java:24701) 
                     at android.os.Handler.handleCallback(Handler.java:789) 
                     at android.os.Handler.dispatchMessage(Handler.java:98) 
                     at android.os.Looper.loop(Looper.java:164) 
                     at android.app.ActivityThread.main(ActivityThread.java:6541) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
10-22 17:56:30.251 2540-2540/com.doov.prototype E/UncaughtException: java.lang.IncompatibleClassChangeError: Superclass com.google.android.gms.internal.zzbax of com.google.android.gms.internal.zzarm is an interface (declaration of 'com.google.android.gms.internal.zzarm' appears in /data/app/com.doov.prototype-EkSA0Y-MCxsGwYGtmSxRQQ==/split_lib_dependencies_apk.apk:classes33.dex) 
                     at com.google.android.gms.auth.api.Auth.<clinit>(Unknown Source:95) 
                     at com.firebase.ui.auth.util.GoogleSignInHelper.getInstance(GoogleSignInHelper.java:21) 
                     at com.firebase.ui.auth.AuthUI.signOut(AuthUI.java:175) 
                     at com.doov.prototype.SignedInActivity.signOut(SignedInActivity.java:38) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                     at android.view.View.performClick(View.java:6256) 
                     at android.view.View$PerformClick.run(View.java:24701) 
                     at android.os.Handler.handleCallback(Handler.java:789) 
                     at android.os.Handler.dispatchMessage(Handler.java:98) 
                     at android.os.Looper.loop(Looper.java:164) 
                     at android.app.ActivityThread.main(ActivityThread.java:6541) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

私はプログラミングに新しいですので、私はデバッグする方法明確に理解ドント。任意のヒント?前もって感謝します。ここで

はbuild.gradleの依存関係です:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 
     classpath 'com.google.gms:google-services:3.0.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-auth:11.0.4' 
    compile 'com.firebaseui:firebase-ui:2.0.1' 
    compile 'com.firebaseui:firebase-ui-auth:2.0.1' 
    compile 'com.google.android.gms:play-services-maps:11.0.4' 
    compile 'com.google.firebase:firebase-database:10.0.1' 
    testCompile 'junit:junit:4.12' 
} 
+0

build.gradleから依存関係を表示できますか? –

+0

もちろん。私はそれらの質問に追加しました:) 私はコンパイル中にエラーが発生しない、私は、アプリケーションを実行し、ボタンを押す間にエラーが表示されます。 –

+0

さて、私は何かが見えると思う。下の私の答えを見てください。 –

答えて

0

によると:

https://github.com/firebase/FirebaseUI-Android/issues/798

あなたは依存関係が欠落しているように見えます。 Firebaseの認証システムで必要なので、com.google.android.gms:play-services-authを追加してください。だから、

、短くなるように、あなたのbuild.gradleにこの行を追加します。

compile "com.google.android.gms:play-services-auth:11.0.4" 

はまた、他の依存関係の値をチェックして、彼らはこれらのバージョンに応じて適合させる:

https://github.com/firebase/FirebaseUI-Android#upgrading-dependencies

Googleがライブラリの難読化に使用しているため、依存関係のバージョンが一致しないと問題が発生します。

+0

ありがとうございます。私はこれを数日間扱っていました、あなたは本当の命を救う人です。チャームのように働いた! –

+0

それはうまくいってうれしい、幸運! –

関連する問題