我在.apk中编译时遇到问题,模拟器中未发生错误

时间:2019-04-22 14:37:50

标签: android

我正在创建一个应用程序,我使用的登录系统是直接进入google帐户的系统,当我在android studio中测试其“运行”时,一切运行正常,但是当我将其导出到.apk时似乎n可以与Firebase连接,或者可以与Internet连接,如您在所附图像中所见,我已经具有Internet权限。如果您能帮助我,我将非常感谢。

AndroidManifest http://prntscr.com/nfbsxn

我试图查看返回的错误消息,并且总是给出类似“ 7”或“ 10:”的数字。错误的一部分将在代码中被注释掉


package sandro.sf.testar;

//I took the imports to not get so big

public class MainActivity extends AppCompatActivity {

    private SignInButton mGoogleBtn;

   private static final int RC_SIGN_IN = 1;

     private GoogleApiClient mGoogleSignInClient;

    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;

    private static final String TAG = "activity_act_inicial";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide();
        setContentView(R.layout.activity_act_inicial);

        FirebaseApp.initializeApp(this);


        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

                if (firebaseAuth.getCurrentUser() != null) {

                    String uid = FirebaseAuth.getInstance().getUid();

                    DocumentReference mDocRef = FirebaseFirestore.getInstance().document("Users/" + uid);

                    mDocRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                        @Override
                        public void onSuccess(DocumentSnapshot documentSnapshot) {
                           if(documentSnapshot.exists()){
                               Log.i("teste", "Existe");

                               Intent intent = new Intent(MainActivity.this, Logado.class);

                               intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

                               startActivity(intent);
                               return;

                           }
                            Log.i("teste", "No Existe");
                           Intent intent = new Intent(MainActivity.this, Alternative2.class);

                           intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

                           startActivity(intent);

                           }


                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Log.i(TAG, "error 1 " + e.getMessage());
                        }
                    });




                }

            }
        };


        mGoogleBtn = (SignInButton) findViewById(R.id.GoogleBtn);

            mAuth = FirebaseAuth.getInstance();

        //Configure Google Sign In
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail()
                .build();


      mGoogleSignInClient = new GoogleApiClient.Builder(getApplicationContext())
                .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
                    @Override
                    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {e

                        Toast.makeText(MainActivity.this, "Mensagem de erro(teste)", Toast.LENGTH_LONG).show();

                    }
                })
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso). build();

        mGoogleBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "Dentro de onClick" );
                signIn();
            }
        });


    }


    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "Dentro de onStart" );
        mAuth.addAuthStateListener(mAuthListener);
    }

    private void signIn() {
        Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleSignInClient);
        startActivityForResult(signInIntent, RC_SIGN_IN);
        Log.d(TAG, "Dentro de signIn" );
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            try {
                // Google Sign In was successful, authenticate with Firebase
                GoogleSignInAccount account = task.getResult(ApiException.class);
                firebaseAuthWithGoogle(account);
            } catch (ApiException e) { //here it returns the error, it does not go through try
                Toast.makeText(this, e.getMessage(), 
Toast.LENGTH_SHORT).show(); // <- here is the error message!!!!
            }
        }
    }

    private void firebaseAuthWithGoogle(GoogleSignInAccount account) {

        AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        Log.d(TAG, "signInWithCredential:success" + task.isSuccessful());

                        if (!task.isSuccessful()) {

                            Log.d(TAG, "signInWithCredential:Exeption" , task.getException());
                            Toast.makeText(MainActivity.this, "Falha ao efetuar o login, por favor verifique sua conecção.", Toast.LENGTH_SHORT).show();

                        }
                        // ...
                    }
                });


    }


}

当用户可以与Firebase连接时,我想要它去另一个活动。问题是它仅在编译apk时出错,在模拟器内部不会给出错误

0 个答案:

没有答案