Android: NoSuchMethodError: No static method zzy(Ljava/lang/Object;
Asked Answered
G

4

5

I create an app in which I can access in two waves: FirebaseUI Auth and Firebase SDK Authentication (I know that's quite wrong, I made this only for some tests). Well, from when I add the google access, I can't access with SDK Authentication, the app always crashes and I don't know why. Here is my code:

public class MainActivity extends AppCompatActivity
{
DialogProgress dialogProgress;
EditText editEmail;
EditText editPassword;
String email;
String password;
FirebaseAuth firebaseAuth;
final int REQUEST_CODE_GOOGLE = 100;
static Activity activity;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    activity = this;
    editEmail = (EditText) findViewById(R.id.editEmailA);
    editPassword = (EditText) findViewById(R.id.editPasswordA);
    firebaseAuth = FirebaseAuth.getInstance();

    if(firebaseAuth.getCurrentUser()!=null)
    {
        Toast.makeText(getApplicationContext(), "Bentornato " + firebaseAuth.getCurrentUser().getEmail().toString(), Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(MainActivity.this,ProfileActivity.class);
        startActivity(intent);
        finish();
    }

    findViewById(R.id.accediButton).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            email = editEmail.getText().toString();
            password = editPassword.getText().toString();

            if(TextUtils.isEmpty(email))
            {
                Toast.makeText(getApplicationContext(),"Email vuota",Toast.LENGTH_SHORT).show();
            }

            if(TextUtils.isEmpty(password))
            {
                Toast.makeText(getApplicationContext(),"Password vuota",Toast.LENGTH_SHORT).show();
            }

            if(!(TextUtils.isEmpty(email)||TextUtils.isEmpty(password)))
            {
                DialogProgress.setLayout(0);
                dialogProgress = new DialogProgress();
                dialogProgress.setCancelable(false);
                dialogProgress.show(getSupportFragmentManager().beginTransaction(),"Dialog");

                firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task)
                    {
                        if (task.isSuccessful())
                        {
                            dialogProgress.dismiss();
                            Toast.makeText(getApplicationContext(), "Bentornato " + firebaseAuth.getCurrentUser().getEmail().toString(), Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(MainActivity.this,ProfileActivity.class);
                            startActivity(intent);
                            finish();
                        }
                        else
                        {
                            dialogProgress.dismiss();
                            Toast.makeText(getApplicationContext(), "Login fallito " + task.getException().toString(), Toast.LENGTH_LONG).show();
                        }
                    }
                });
            }
        }
    });

    findViewById(R.id.registratiText).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            Intent intent = new Intent(MainActivity.this,RegistrazioneActivity.class);
            startActivity(intent);
        }
    });

    findViewById(R.id.accediGoogle).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            AuthUI authUi = AuthUI.getInstance();
            Intent intent = authUi.createSignInIntentBuilder().build();
            startActivityForResult(intent,REQUEST_CODE_GOOGLE);
        }
    });

}

@Override
public void onActivityResult(int codice, int risultato, Intent data)
{
    super.onActivityResult(codice, risultato, data);
    if(codice==REQUEST_CODE_GOOGLE && risultato==RESULT_OK && data!=null)
    {
        IdpResponse idpResponse = IdpResponse.fromResultIntent(data);
        Toast.makeText(getApplicationContext(),idpResponse + "",Toast.LENGTH_LONG).show();
    }
}
}

Here is my gradle Project:

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

allprojects 
{
  repositories 
  {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }
}

task clean(type: Delete) 
{
delete rootProject.buildDir
}

Here is my gradle app:

apply plugin: 'com.android.application'

android 
{
compileSdkVersion 25
buildToolsVersion "25.0.2"
  defaultConfig 
  {
    applicationId "com.example.utente.myfirebase"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
    "android.support.test.runner.AndroidJUnitRunner"
  }
buildTypes 
{
  release 
  {
  minifyEnabled false
  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-
  rules.pro'
  }
}
}

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.1.0'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-storage:9.4.0'
compile 'com.firebaseui:firebase-ui-auth:1.2.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'

}
apply plugin: 'com.google.gms.google-services'

Log:

04-15 21:34:06.318 26912-26912/com.example.utente.myfirebase A/FirebaseApp: Firebase API initialization failure.
                                                                        java.lang.reflect.InvocationTargetException
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.google.firebase.FirebaseApp.zza(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:1737)
                                                                            at android.content.ContentProvider.attachInfo(ContentProvider.java:1712)
                                                                            at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                            at android.app.ActivityThread.installProvider(ActivityThread.java:5437)
                                                                            at android.app.ActivityThread.installContentProviders(ActivityThread.java:5032)
                                                                            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4972)
                                                                            at android.app.ActivityThread.access$1600(ActivityThread.java:177)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:135)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5910)
                                                                            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:1405)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
                                                                         Caused by: java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzab; or its super classes (declaration of 'com.google.android.gms.common.internal.zzab' appears in /data/app/com.example.utente.myfirebase-2/split_lib_dependencies_apk.apk:classes33.dex)
                                                                            at com.google.android.gms.measurement.internal.zzx.zzdo(Unknown Source)
                                                                            at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source)
                                                                            at java.lang.reflect.Method.invoke(Native Method) 
                                                                            at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                            at com.google.firebase.FirebaseApp.zza(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:1737) 
                                                                            at android.content.ContentProvider.attachInfo(ContentProvider.java:1712) 
                                                                            at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                            at android.app.ActivityThread.installProvider(ActivityThread.java:5437) 
                                                                            at android.app.ActivityThread.installContentProviders(ActivityThread.java:5032) 
                                                                            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4972) 
                                                                            at android.app.ActivityThread.access$1600(ActivityThread.java:177) 
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491) 
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                            at android.os.Looper.loop(Looper.java:135) 
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5910) 
                                                                            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:1405) 
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
Gribble answered 15/4, 2017 at 19:33 Comment(6)
Possible duplicate of After upgrading to google play services 8.4.0 my app crashes on startupCountersignature
Can you post your stack trace?Revelation
@Countersignature but It is very differentGribble
@Drew I have doneGribble
Please explain how your question is different.Countersignature
@Countersignature it's conceptually different, in my case it didn't work with the accessGribble
V
7

You must use compatible versions of the Firebase API libraries and Firebase UI. The table of compatible version is in the Firebase UI documentation. Change 9.4.0 to 10.2.0 for the com.google.firebase:firebase-* libraries.

compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.google.firebase:firebase-database:10.2.0'
compile 'com.google.firebase:firebase-storage:10.2.0'
compile 'com.firebaseui:firebase-ui-auth:1.2.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
Voigt answered 15/4, 2017 at 19:39 Comment(3)
I don't use Firebase. I use Onesignal which uses Firebase and I get the same error. Any suggestions?Bedding
@Tina: Post a new question and include your build.gradle. See also this: github.com/OneSignal/OneSignal-Android-SDK/issues/286Voigt
I just did post an answer with the whole detail :) #49645715Bedding
R
6

Change this:

compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-storage:9.4.0'

To this:

compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.google.firebase:firebase-database:10.2.0'
compile 'com.google.firebase:firebase-storage:10.2.0'

You need to upgrade Firebase, you are using an old version. You will see Firebase has version 10.2.1 available, but according to FirebaseUi it currently supports Firebase version up to 10.2.0, so use 10.2.0.

Revelation answered 15/4, 2017 at 19:40 Comment(0)
O
0
  1. As it's mentioned here Update all the versions to the latest ones and all the versions should be the same.
  2. Clean and Rebuild your Project

Run the project.

Organza answered 6/4, 2018 at 20:19 Comment(0)
A
0

Check comparability version of firebase, recommanded to use latest

In my case I have forgot to add below dependency

compile 'com.google.firebase:firebase-core:9.4.0'  

My all dependency as below

compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.firebase:firebase-client-android:2.5.1' 

all use to send push notification to device

Analogize answered 26/7, 2018 at 9:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.