Facebook Login only works with API 24 - Local module descriptor class for com.google.firebase.auth not found. error

I added a facebook login with firebase authentication in my application, but login authentication only works with Android API 24.

When I try to use the lower level API, the screen freezes and the application stops working.

It is too high, most users have an API level.

Indeed, I intend to release an application for lower API levels.

The code I'm using is below.

public class ConfigurationActivity extends Activity { Button b_v_mm,b_som; LoginButton loginButton; CallbackManager callbackManager; // [START declare_auth] private FirebaseAuth mAuth; // [END declare_auth] private void handleFacebookAccessToken(AccessToken token) { Log.d("FireBase", "handleFacebookAccessToken:" + token); AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); mAuth.signInWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user information Log.d("FireBase", "signInWithCredential:success"); FirebaseUser user = mAuth.getCurrentUser(); //updateUI(user); } else { // If sign in fails, display a message to the user. Log.w("FireBase", "signInWithCredential:failure", task.getException()); //Toast.makeText(FacebookLoginActivity.this, "Authentication failed.", // Toast.LENGTH_SHORT).show(); //updateUI(null); } // ... } }); } // [START on_start_check_user] @Override public void onStart() { super.onStart(); Log.d("FireBase", "onStart"); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); //updateUI(currentUser); } // [END on_start_check_user] @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d("LoginFace", "LoginFace - onActivityResult"); super.onActivityResult(requestCode, resultCode, data); Log.d("LoginFace", "LoginFace - onActivityResult"); callbackManager.onActivityResult(requestCode, resultCode, data); Log.d("LoginFace", "LoginFace - After callbackManager"); /* if (AccessToken.getCurrentAccessToken() != null) { Log.d("AjudaFace", "AjudaFace - logout"); LoginManager.getInstance().logOut(); }*/ } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_configuration); //Botãp da barra de ferramentas que faz retornar para o Menu principal. b_v_mm = (Button) findViewById(com.cerveja.qof.pedro.qof_cerveja.R.id.b_v_mm); b_v_mm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(ConfigurationActivity.this, MainMenu.class); startActivity(intent); finish(); } }); b_som = (Button) findViewById(com.cerveja.qof.pedro.qof_cerveja.R.id.b_som); //Altera opções de som. b_som.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Carrega opções de texto do botão, armazenadas no repositório de strings String s_som_on = getString(R.string.b_som_on); String s_som_off = getString(R.string.b_som_off); //Caso o som esteja desligado, o desliga. if(b_som.getText().equals(s_som_on)) { b_som.setText(s_som_off); } else //Caso o som esteja desligado, o liga. if (b_som.getText().equals(s_som_off)){ b_som.setText(s_som_on); } } } ); callbackManager = CallbackManager.Factory.create(); // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance(); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions("email","public_profile"); Log.d("LoginFace", "LoginFace - Button Created"); // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { handleFacebookAccessToken(loginResult.getAccessToken()); Log.d("LoginFace", "LoginFace - Sucesso"); Toast.makeText(getApplicationContext(), "LOGIN REALIZADO", Toast.LENGTH_LONG).show(); } @Override public void onCancel() { Log.d("LoginFace", "LoginFace - Cancelado"); Toast.makeText(getApplicationContext(), "LOGIN CANCELADO", Toast.LENGTH_LONG).show(); } @Override public void onError(FacebookException exception) { Log.d("LoginFace", "LoginFace - Erro"); Toast.makeText(getApplicationContext(), "LOGIN Erro", Toast.LENGTH_LONG).show(); Log.d("LoginFace", exception.toString()); } }); } } 

Objects Used in MyApplication Activity

 import android.app.Application; import android.content.Context; 

** All objects used in the project are listed above.

API 23 log:

12-02 17: 22: 26.900 2668-2745 /? D / EGL_emulation: eglMakeCurrent: 0xaa9ba4e0: ver 2 0 (tinfo 0xac3853a0)

  [ 12-02 17:22:26.949 2668: 3361 D/ ] HostConnection::get() New Host Connection established 0xa19c5800, tid 3361 [ 12-02 17:22:26.950 2668: 3361 W/ ] Unrecognized GLES max version string in extensions: ANDROID_EMU_CHECKSUM_HELPER_v1 

ANDROID_EMU_dma_v1 12-02 17: 22: 26.977 2668-3361 /? D / EGL_emulation: eglCreateContext: 0xaa9ba900: maj 2 min 0 rcv 2 12-02 17: 22: 26.978 2668-3361 /? D / EGL_emulation: eglMakeCurrent: 0xaa9ba900: ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 22: 26,980 2668-3361 /? E / eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf 12-02 17: 22: 26.980 2668-3361 /? E / eglCodecCommon: glUtilsParamSize: unknown parameter 0x00008824 12-02 17: 22: 26.980 2668-3361 /? E / eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf 12-02 17: 22: 26.980 2668-3361 /? E / eglCodecCommon: glUtilsParamSize: unknown parameter 0x00008824 12-02 17: 22: 27.135 2668-3361 /? D / EGL_emulation: eglCreateContext: 0xaa9ba9c0: maj 2 min 0 rcv 2 12-02 17: 22: 27.136 2668-3361 /? D / EGL_emulation: eglMakeCurrent: 0xaa9ba9c0: ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 22: 29,740 2668-2668 / com.cerveja.qof.pedro.qof_cerveja W / BindingManager: cannot call definedVisibility () - never seen connection for pid: 2668 12-02 17: 22: 32.649 2668-2745 / com.cerveja.qof.pedro.qof_cerveja D / EGL_emulation: eglMakeCurrent: 0xaa9ba4e0: ver 2 0 (tinfo 0xac3853a0) 12-02 17: 22: 32,650 2668 -2745 / com.cerveja.qof.pedro.qof_cerveja E / Surface: getSlotFromBufferLocked: unknown buffer: 0xb40bdc00 12-02 17: 22: 32.676 2668-3361 / com.cerveja.qof.pedro.qof_cerveja D / EGL_emulation: eglxaqueaa : ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 22: 32,687 2668-3361 / com.cerveja.qof.pedro.qof_cerveja D / EGL_emulation: eglMakeCurrent: 0xaa9ba9c0: ver 2 0 (tinfo 0xa23bf7e0) 12-02 : 32,704 2668-2745 / com.cerveja.qof.pedro.qof_cerveja D / EGL_emulation: eglMakeCurrent: 0xaa9ba4e0: ver 2 0 (tinfo 0xac3853a0) 12-02 17: 22: 32,716 26 68-2745 / com.cerveja.qof.pedro.qof_cerveja E / eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf 12-02 17: 22: 32,767 2668-3361 / com.cerveja.qof.pedro.qof_cerveja D / EGL_emaarenta: 0a : ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 27: 05.115 2668-2711 / com.cerveja.qof.pedro.qof_cerveja W / DynamiteModule: the local module descriptor class for com.google.firebase.auth was not found.

This last one is probably the cause of the error:

12-02 17: 27: 05.115 2668-2711 / com.cerveja.qof.pedro.qof_cerveja W / DynamiteModule: local module descriptor class for com.google.firebase.auth not found.

What can I do to lower the API level?

+5
source share
1 answer

Try re-synchronizing your client with the Firebase application and add the .json file again.

In Android Studio 2.3, just click on Tools> firebase and in the assistant check if your application is connected.

And also make sure that the package name is correct both in the facebook developer account and in firebase.

Use the latest Firebase library

Can you check your version of Google Play Services?

Android device must have Google Play services 9.0.0 or later

One of the reasons for this problem may be your Firebase login method> Auth control panel may be disabled

+1
source

Source: https://habr.com/ru/post/1273772/


All Articles