Мой экран входа в систему работает нормально, когда я тестирую на телефоне, подключенном к 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);
}
}
}
}