2017-11-30 16 views
5

Tôi đã thêm thông tin đăng nhập facebook với xác thực firebase trên ứng dụng của mình, nhưng xác thực đăng nhập chỉ hoạt động từ API Android 24.Đăng nhập Facebook chỉ hoạt động từ API 24 - Lớp mô tả mô-đun cục bộ cho com.google.firebase.auth không tìm thấy. lỗi

Khi tôi cố gắng sử dụng API cấp thấp hơn, màn hình bị đóng băng và ứng dụng ngừng hoạt động.

Quá cao, hầu hết người dùng có số thấp hơn API level.

Thật vậy, tôi dự định phát hành ứng dụng cho các cấp API thấp hơn.

Mã tôi đang sử dụng ở dưới.

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's 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()); 
      } 
     }); 


    } 
} 

Đối tượng sử dụng trong hoạt động MyApplication

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

** Tất cả các đối tượng sử dụng trong dự án được liệt kê ở trên

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: unknow param 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: unknow param 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: Không thể gọi definedVisibility() - không bao giờ thấy một kết nối cho 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/Bề mặt: getSlotFromBufferLocked: bộ đệm không xác định: 0xb40bdc00 12-02 17: 22: 32.676 2668-3361/com.cerveja.qof.pedro .qof_cerveja D/EGL_emulation: eglMakeCurrent: 0xaa9ba900: ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 22: 32.687 26 68-3361/com.cerveja.qof.pedro.qof_cerveja D/EGL_emulation: eglMakeCurrent: 0xaa9ba9c0: ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 22: 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 2668-2745/com.cerveja.qof.pedro.qof_cerveja E/eglCodecCommon: glUtilsParamSize: param unknow 0x00008cdf 12-02 17: 22: 32.767 2668-3361/com.cerveja.qof.pedro.qof_cerveja D/EGL_emulation: eglMakeCurrent: 0xaa9ba900: ver 2 0 (tinfo 0xa23bf7e0) 12-02 17: 27: 05.115 2668-2711/com.cerveja.qof.pedro.qof_cerveja W/DynamiteModule: Local mô-đun lớp mô tả cho không tìm thấy com.google.firebase.auth.

một thức Đây có lẽ là nguyên nhân gây ra lỗi:

12-02 17: 27: 05.115 2668-2711/com.cerveja.qof.pedro.qof_cerveja W/DynamiteModule: Local mô-đun lớp mô tả cho com Không tìm thấy .google.firebase.auth.

Tôi có thể làm gì để hạ cấp API được yêu cầu?

+0

mức api của tôi là 15 và hoạt động giống như nét duyên dáng – androidXP

+0

Có thể có sự cố với phụ thuộc xây dựng của bạn hoặc phiên bản dịch vụ của Google Play trên thiết bị của bạn. Giải thích thêm về những gì không thành công trên các thiết bị có API dưới 23. –

+0

Làm cách nào để khám phá? Ứng dụng này chỉ đóng băng, nó không trỏ bất kỳ lỗi nào trên logcat. – Siqueira

Trả lời

1

Hãy thử đồng bộ hóa ứng dụng khách của bạn với ứng dụng Firebase và thêm lại tệp .json.

Trong studio android 2.3, chỉ cần nhấp vào công cụ> firebase và trong trợ lý kiểm tra xem ứng dụng của bạn có được kết nối không.

Và cũng đảm bảo rằng tên gói là chính xác trong cả tài khoản nhà phát triển facebook và bảng điều khiển firebase.

Use the latest Firebase library

Bạn có thể kiểm tra phiên bản Dịch vụ Google Play của mình không?

Các thiết bị Android nên có các dịch vụ 9.0.0 hay muộn

Một trong những lý do cho vấn đề này có thể được, bạn đăng nhập Phương pháp bên trong căn cứ hỏa lực> Auth Bảng điều khiển có thể bị vô hiệu hóa Google Play

Các vấn đề liên quan