Android экран входа работает на Android Studio отладка apk, но не при загрузке из Play Store - PullRequest
0 голосов
/ 17 февраля 2020

Мой экран входа в систему работает нормально, когда я тестирую на телефоне, подключенном к android studio. Когда я загружаю его в Play Store и загружаю в другой телефон, он не работает. Когда я нажимаю логин, я сразу получаю результат выполнения

toast("login: " + loginResult + " ok: " + false);

, а я не получаю результат

toast("fazendo login");

, который указывает на то, что асинхронная задача c возвращаясь немедленно, он даже не пытается сделать логин. Почему это происходит? Я не могу отладить, потому что это происходит только в загруженном приложении из магазина игр.

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import venko.Venko;

public class LoginActivity extends AppCompatActivity {
    private static final String TAG = "LoginActivity";

    TextView serverView;
    TextView passwordView;
    Button loginButton;
    Venko venkoAPI;
    String server;
    String password;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        venkoAPI = new Venko();

        serverView = findViewById(R.id.server);
        passwordView = findViewById(R.id.password);
        loginButton = findViewById(R.id.login);
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                server = serverView.getText().toString();
                password = passwordView.getText().toString();
                new LoginTask().execute();
            }
        });
        toast("faça login no servidor");
    }
    public void toast(final String text) {
        runOnUiThread(new Runnable() {
            public void run() {
                Toast.makeText(getBaseContext(), text, Toast.LENGTH_LONG).show();
            }
        });
    }
    private class LoginTask extends AsyncTask<Integer, Void, Boolean> {

        private LoginTask() {

        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected Boolean doInBackground(Integer... params) {
            try {
                toast("fazendo login");

                venkoAPI.setPassword(password);
                venkoAPI.setAddress(server);
                Log.d(TAG, "doing login to " + server + " with password " + password);
                return venkoAPI.doLogin();
            } catch (Exception exception) {
                Log.d(TAG, exception.toString());
                toast(exception.toString());
                return false;
            }
        }

        @Override
        protected void onPostExecute(Boolean loginResult) {
            super.onPostExecute(loginResult);
            SharedPreferences sharedPref = getSharedPreferences("login", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPref.edit();
            boolean ok = loginResult;
            if (ok) {
                Log.d(TAG, "saving password info: " + serverView.getText().toString() + " and " + passwordView.getText().toString());
                editor.putString("server", serverView.getText().toString());
                editor.putString("password", passwordView.getText().toString());
                editor.commit();
                //go to main activity
                Intent intent = new Intent(LoginActivity.this, MainViewPager.class);
                startActivity(intent);
            } else {
                Log.d(TAG, "login did not work");
                toast("login: " + loginResult + " ok: " + false);
            }
        }
    }
}

1 Ответ

1 голос
/ 17 февраля 2020

Проблема возникает в сборке релиза при использовании proguard-rules

Добавьте эту строку в ваш proguard-rules.pro

-keep class YOUR_PACKAGE_NAME.LoginActivity { *; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...