Android-verificatie firebase-fout: lokale moduledescriptorklasse voor com.google.firebase.auth niet gevonden

  • Hier is het gradle-bestand:

    
    compile 'com.android.support:appcompat-v7:25.3.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.firebase:firebase-auth:10.2.1'
    compile 'com.android.support:design:25.3.0'
    testCompile 'junit:junit:4.12' 
    
  • En de code:

  • 
        public class RegisterActivity extends AppCompatActivity {
        private FirebaseAuth mAuth;
        private FirebaseAuth.AuthStateListener mAuthListener;
        private EditText mUsernameField;
        private EditText mPasswordField;
        private EditText mConfirmPasswordField;
        private Button mRegisterButton;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            mUsernameField = (EditText) findViewById(R.id.enterUsername);
            mPasswordField = (EditText) findViewById(R.id.enterPassword);
            mConfirmPasswordField = (EditText) findViewById(R.id.confirmPassword);
            mRegisterButton = (Button) findViewById(R.id.confirmRegistration);
            mRegisterButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    createAccount(mUsernameField.getText().toString(), mPasswordField.getText().toString());
                }
            });
            mAuth = FirebaseAuth.getInstance();
            mAuthListener = new FirebaseAuth.AuthStateListener() {
                @Override
                public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                    FirebaseUser user = firebaseAuth.getCurrentUser();
                    if (user != null) {
                        // User is signed in
                        Log.d("account", "onAuthStateChanged:signed_in:" + user.getUid());
                    } else {
                        // User is signed out
                        Log.d("account", "onAuthStateChanged:signed_out");
                    }
                    // ...
                }
            };
        }
        @Override
        public void onStart() {
            super.onStart();
            mAuth.addAuthStateListener(mAuthListener);
        }
        @Override
        public void onStop() {
            super.onStop();
            if (mAuthListener != null) {
                mAuth.removeAuthStateListener(mAuthListener);
            }
        }
        private void createAccount(String email, String password) {
            Log.d("account", "createAccount:" + email);
            if (!validateForm()) {
                return;
            }
            // [START create_user_with_email]
            mAuth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(this, new OnCompleteListener() {
                        @Override
                        public void onComplete(@NonNull Task task) {
                            Log.d("account", "createUserWithEmail:onComplete:" + task.isSuccessful());
                            // If sign in fails, display a message to the user. If sign in succeeds
                            // the auth state listener will be notified and logic to handle the
                            // signed in user can be handled in the listener.
                            if (!task.isSuccessful()) {
                                Toast.makeText(RegisterActivity.this, R.string.register_failed,
                                        Toast.LENGTH_SHORT).show();
                            }
                            else {
                                Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                                RegisterActivity.this.startActivity(intent);
                                finish();
                            }
                        }
                    });
            // [END create_user_with_email]
        }
        private boolean validateForm() {
            boolean valid = true;
            String email = mUsernameField.getText().toString();
            if (TextUtils.isEmpty(email)) {
                mUsernameField.setError("Required.");
                valid = false;
            } else {
                mUsernameField.setError(null);
            }
            String password = mPasswordField.getText().toString();
            if (TextUtils.isEmpty(password)) {
                mPasswordField.setError("Required.");
                valid = false;
            } else {
                mPasswordField.setError(null);
            }
            String confirmPassword = mConfirmPasswordField.getText().toString();
            if (TextUtils.isEmpty(confirmPassword)) {
                mConfirmPasswordField.setError("Required.");
                valid = false;
            } else {
                mConfirmPasswordField.setError(null);
            }
            if(!confirmPassword.equals(password)) {
                mConfirmPasswordField.setError("Passwords must be the same.");
                valid = false;
            }
            return valid;
        }
    }
     
    • En tot slot de fout:
    W/DynamiteModule: lokale modulebeschrijvingsklasse voor com.google.firebase.auth niet gevonden.
    W/GooglePlayServicesUtil: Google Play Store ontbreekt.
    I/art: Achtergrond gedeeltelijke gelijktijdige markering GC vrijgemaakt 5866 (313 KB) AllocSpace-objecten, 1 (14 KB) LOS-objecten, 39% vrij, 2 MB/4 MB, onderbroken 5,176 ms totaal 27,761 ms
    D/account: createUserWithEmail:onComplete:false 

    • Vrijwel alles is uit het leerboek gehaald van de Firebase-website. Help alstublieft, we zitten hier al uren mee vast en geen van de andere soortgelijke vragen heeft geholpen.

    Antwoord 1, autoriteit 100%

    Optie 1: Ga naar Firebase Console < Authenticatie < AANMELDMETHODE en kijk of u deze in de anonieme status gebruikt. Als dat zo is, schakelt u dat uit en schakelt u E-mail/wachtwoord in of welke inlogmethode u ook gebruikt.

    Optie 2: controleer of het apparaat waarmee u test Google Play-services 9.0.0 of hoger gebruikt.


    Antwoord 2, autoriteit 100%

    Voeg een logtoe aan de onComplete()-listener van createUserWithEmailAndPassword()om te zien wat precies de reden achter de fout is.

      if (!task.isSuccessful()) {
        Log.e(TAG, "onComplete: Failed=" + task.getException().getMessage()); 
        }
    

    Dit kan komen door het passwordof emaildat je hebt ingevoerd om een account aan te maken.
    Controleer:

    • als de e-mail die je hebt ingevoerd de juiste indeling heeft en bestaat.
    • als het wachtwoord sterk genoeg is om geaccepteerd te worden (meestal niet minder dan 6 letters).
    • als er al een account is met hetzelfde e-mailadres.

    Antwoord 3, autoriteit 40%

    In mijn geval was ik de applicatie aan het debuggen en miste ik de SHA1-sleutel in mijn firebase-projectconfiguratie. Als u aan het debuggen bent, zorg er dan voor dat u uw SHA1-sleutel op zijn plaats heeft.


    Antwoord 4, autoriteit 20%

    Kunt u uw versie van Google Play-services controleren?

    Vereisten:

    • Een Android-apparaat met Google Play-services 9.0.0 of hoger
    • De Google Play-services SDK van de Android SDK Manager
    • Android Studio 1.5 of hoger
    • Een Android Studio-project en de naam van de pakket.

    Een van de reden voor dit probleem kan zijn, uw aanmelding in de methode in Firebase & GT; Auth-dashboard kan worden uitgeschakeld.

    bewerken

    De 10.2.1-versie was niet beschikbaar voor het downloaden van een (virtuele)
    apparaat dat u hebt getest, vereiste update.

    De versie van Google Play-services die worden weergegeven in het gedeelte Extra’s onderaan de stand-alone SDK-manager heeft geen effect op de versie die wordt gebruikt door een emulator. De emulators lopen op systeemafbeeldingen die zijn geconfigureerd om een ​​bepaalde versie van afspeelservices te bevatten, wat niet altijd hetzelfde is.

    U moet bevestigen dat u de nieuwste emulatorafbeeldingen hebt gedownload met versie-compatibiliteit zoals versie 10.2.1 (Laatste).


    Antwoord 5, Autoriteit 20%

    hetzelfde gebeurde met mij omdat ik de oude auth-versie gebruikte zoals je kunt zien
    De oude wordt vermeld en commentaar gegeven en de nieuwe is aan de onderkant van de binnenkant afhankelijkheden.

    Probeer dus altijd afhankelijkheden te volgen die worden genoemd

    Other episodes