#c# #android #xamarin #xamarin.android #visual-studio-2019
Вопрос:
Я разработал приложение для Android с использованием Xamarin.Android, и он отлично работает на Android 8.1 — Эмулятор API27. Когда я пытаюсь запустить на реальном устройстве, которым является терминал Newland MT9052, приложение всегда заполняет список отказов.
Когда я запускаю приложение в режиме отладки, хотя адрес электронной почты и пароль указаны правильно, приложение заполняет список ошибок.
Вот моя логинактивность.cs:
TextInputLayout emailText;
TextInputLayout passwordText;
Button girisYapButton;
TextView txtViewUyeOl;
LinearLayout linearLayout;
FirebaseAuth mAuth;
TaskCompletionListener listener = new TaskCompletionListener();
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_login);
// Create your application here
emailText = (TextInputLayout)FindViewById(Resource.Id.textEmailLogin);
passwordText = (TextInputLayout)FindViewById(Resource.Id.textSifreLogin);
linearLayout = (LinearLayout)FindViewById(Resource.Id.linearLayout);
girisYapButton = (Button)FindViewById(Resource.Id.buttonGirisYap);
girisYapButton.Click = GirisYapButton_Click;
InitializeFirebase();
txtViewUyeOl = (TextView)FindViewById(Resource.Id.textViewUyeOl);
txtViewUyeOl.Click = txtViewUyeOl_Click;
}
private void GirisYapButton_Click(object sender, EventArgs e)
{
string email, password;
email = emailText.EditText.Text;
password = passwordText.EditText.Text;
if (!email.Contains("@"))
{
new Android.Support.V7.App.AlertDialog.Builder(this)
.SetPositiveButton("Tamam", (sender, args) =>
{
})
.SetMessage("Lütfen geçerli bir e-mail adresi giriniz!")
.SetTitle("Uyarı")
.Show();
return;
}
else if(password.Length < 6)
{
new Android.Support.V7.App.AlertDialog.Builder(this)
.SetPositiveButton("Tamam", (sender, args) =>
{
})
.SetMessage("Lütfen en az 6 karakterli şifrenizi giriniz!")
.SetTitle("Uyarı")
.Show();
return;
}
else
{
listener.Success = Listener_Success;
listener.Failure = Listener_Failure;
mAuth.SignInWithEmailAndPassword(email, password)
.AddOnSuccessListener(this, listener)
.AddOnFailureListener(this, listener);
}
}
private void Listener_Failure(object sender, EventArgs e)
{
Snackbar.Make(linearLayout, "Email veya şifreniz yanlış!", Snackbar.LengthShort).Show();
}
private void Listener_Success(object sender, EventArgs e)
{
StartActivity(typeof(MainActivity));
}
void InitializeFirebase()
{
var app = FirebaseApp.InitializeApp(this);
if (app == null)
{
var options = new FirebaseOptions.Builder()
.SetApplicationId("konumbulapp-1fc67")
.SetApiKey("AIzaSyA5yRMMJ8ztcdWbIcmOxLyY6Xl_xkDxWzI")
.SetDatabaseUrl("https://konumbulapp-1fc67-default-rtdb.firebaseio.com")
.SetStorageBucket("konumbulapp-1fc67.appspot.com")
.Build();
app = FirebaseApp.InitializeApp(this, options);
mAuth = FirebaseAuth.Instance;
}
else
{
mAuth = FirebaseAuth.Instance;
}
}
вот мой список задач.cs:
public class TaskCompletionListener : Java.Lang.Object, IOnSuccessListener, IOnFailureListener
{
public event EventHandler Success;
public event EventHandler Failure;
public void OnSuccess(Java.Lang.Object result)
{
Success.Invoke(this, new EventArgs());
}
public void OnFailure(Java.Lang.Exception e)
{
Failure.Invoke(this, new EventArgs());
}
}
Я не знаю, что я делаю неправильно или чего мне не хватает.
Когда я создаю приложение, я не получаю ошибок.
Комментарии:
1. Вы действительно проверяли, какое исключение вы получаете при обратном вызове OnFailure в прослушивателе?