安装签名的 apk 后,我的应用程序表现不同
My app behaves differently after signed apk installed
public class MainActivity extends AppCompatActivity {
private EditText email,password,repassword,name;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.nameid);
email = (EditText) findViewById(R.id.emailid);
password = (EditText) findViewById(R.id.passwordid);
mDatabase=FirebaseDatabase.getInstance().getReference().child("users");
mAuth = FirebaseAuth.getInstance();
}
public void signUpButtonClicked(View view){
if (!TextUtils.isEmpty(email.getText().toString())&&!TextUtils.isEmpty(password.getText().toString())&& !TextUtils.isEmpty(name.getText().toString())){
Toasty.error(MainActivity.this, "This is an error toast.", Toast.LENGTH_SHORT, true).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(MainActivity.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//check if already user phone
if (dataSnapshot.child(email.getText().toString()).exists()) {
spinner.dismiss();
Toasty.warning(MainActivity.this,"Sorry User registered",Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
users User = new users(name.getText().toString(), password.getText().toString(), email.getText().toString());
mDatabase.child(email.getText().toString()).setValue(User);
Toast.makeText(MainActivity.this, "Signup Succesful !", Toast.LENGTH_SHORT).show();
Intent loginIntent = new Intent(MainActivity.this, Login.class);
startActivity(loginIntent);
finish();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
public void loginClicked( View view){
Intent startloging = new Intent(MainActivity.this,Login.class);
startActivity(startloging);
}
}
public class Login extends AppCompatActivity {
private EditText userEmail,userPassword;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_login);
userEmail = (EditText) findViewById(R.id.emailid);
userPassword = (EditText) findViewById(R.id.passwordid);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
}
public void signUpButtonClicked(View view){
Intent signup = new Intent(Login.this,MainActivity.class);
startActivity(signup);
}
public void loginButttonClicked(View view) {
if (userPassword.getText().toString().isEmpty()|userEmail.getText().toString().isEmpty()){
Toast.makeText(this, "Please fill all!!", Toast.LENGTH_SHORT).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(Login.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child(userEmail.getText().toString()).exists()) {
spinner.dismiss();
users User = dataSnapshot.child(userEmail.getText().toString()).getValue(users.class);
Common.currentuser = User;
mDatabase.removeEventListener(this);
if (User.getPassword().equals(userPassword.getText().toString())) {
Intent menuIntent = new Intent(Login.this, Menu.class);
startActivity(menuIntent);
finish();
Toasty.success(Login.this, "Signin Successful", Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
Toast.makeText(Login.this, "Signin Failed", Toast.LENGTH_SHORT).show();
}
} else {
spinner.dismiss();
Toast.makeText(Login.this, "User does not exist", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
}
所以我的应用程序在调试模式下运行良好,然后我决定构建一个签名的 apk 发送给我的朋友,以便他们可以检查它。当他们尝试时,应用程序无法登录,不是因为凭据错误,而是因为它未能启动下一个意图 (吐司:"Signin Successful" 出现) ;因此,我没有开始下一个意图,而是回到了注册 activity 意图(顺便说一下,当您启动应用程序时,注册 activity 是我的第一页)。
令人困惑的部分是它在我的 phone 上运行良好(顺便说一句,我 android 工作室的 运行 在我的 phone 上进行测试)我决定安装我发送给我朋友的已发布 apk。
在那之后,我的应用程序开始表现得与他们的 phones 完全一样。 (成功登录后不启动下一个意图)..现在我尝试重新安装调试 apk,我的应用程序仍然表现相同..
现在我的应用程序的工作方式完全不同,它与此 (MainActivity) 不同,如果任何字段为空,它应该 Toast "This is an error toast." 而是说 "Sorry User registered"。
当您填写所有字段并单击创建新帐户时,它也会做类似的事情,它会给出一个显示 "This is an error toast." 而不是 "Sorry User registered" 或 "Signup Succesful !"
的 Toast
它显示吐司的原因 This is an error toast
因为在您的 if
条件下您正在检查文本框是否为空。 TextUtils.isEmpty()
处可能存在逻辑问题,如果文本字段为空,returns 为真,请尝试使用 - TextUtils.isEmpty(string) || TextUtils.isEmpty(string1)|| TextUtils.isEmpty(string2)
。
希望对你有帮助。
public class MainActivity extends AppCompatActivity {
private EditText email,password,repassword,name;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.nameid);
email = (EditText) findViewById(R.id.emailid);
password = (EditText) findViewById(R.id.passwordid);
mDatabase=FirebaseDatabase.getInstance().getReference().child("users");
mAuth = FirebaseAuth.getInstance();
}
public void signUpButtonClicked(View view){
if (!TextUtils.isEmpty(email.getText().toString())&&!TextUtils.isEmpty(password.getText().toString())&& !TextUtils.isEmpty(name.getText().toString())){
Toasty.error(MainActivity.this, "This is an error toast.", Toast.LENGTH_SHORT, true).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(MainActivity.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//check if already user phone
if (dataSnapshot.child(email.getText().toString()).exists()) {
spinner.dismiss();
Toasty.warning(MainActivity.this,"Sorry User registered",Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
users User = new users(name.getText().toString(), password.getText().toString(), email.getText().toString());
mDatabase.child(email.getText().toString()).setValue(User);
Toast.makeText(MainActivity.this, "Signup Succesful !", Toast.LENGTH_SHORT).show();
Intent loginIntent = new Intent(MainActivity.this, Login.class);
startActivity(loginIntent);
finish();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
public void loginClicked( View view){
Intent startloging = new Intent(MainActivity.this,Login.class);
startActivity(startloging);
}
}
public class Login extends AppCompatActivity {
private EditText userEmail,userPassword;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_login);
userEmail = (EditText) findViewById(R.id.emailid);
userPassword = (EditText) findViewById(R.id.passwordid);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
}
public void signUpButtonClicked(View view){
Intent signup = new Intent(Login.this,MainActivity.class);
startActivity(signup);
}
public void loginButttonClicked(View view) {
if (userPassword.getText().toString().isEmpty()|userEmail.getText().toString().isEmpty()){
Toast.makeText(this, "Please fill all!!", Toast.LENGTH_SHORT).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(Login.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child(userEmail.getText().toString()).exists()) {
spinner.dismiss();
users User = dataSnapshot.child(userEmail.getText().toString()).getValue(users.class);
Common.currentuser = User;
mDatabase.removeEventListener(this);
if (User.getPassword().equals(userPassword.getText().toString())) {
Intent menuIntent = new Intent(Login.this, Menu.class);
startActivity(menuIntent);
finish();
Toasty.success(Login.this, "Signin Successful", Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
Toast.makeText(Login.this, "Signin Failed", Toast.LENGTH_SHORT).show();
}
} else {
spinner.dismiss();
Toast.makeText(Login.this, "User does not exist", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
}
所以我的应用程序在调试模式下运行良好,然后我决定构建一个签名的 apk 发送给我的朋友,以便他们可以检查它。当他们尝试时,应用程序无法登录,不是因为凭据错误,而是因为它未能启动下一个意图 (吐司:"Signin Successful" 出现) ;因此,我没有开始下一个意图,而是回到了注册 activity 意图(顺便说一下,当您启动应用程序时,注册 activity 是我的第一页)。
令人困惑的部分是它在我的 phone 上运行良好(顺便说一句,我 android 工作室的 运行 在我的 phone 上进行测试)我决定安装我发送给我朋友的已发布 apk。 在那之后,我的应用程序开始表现得与他们的 phones 完全一样。 (成功登录后不启动下一个意图)..现在我尝试重新安装调试 apk,我的应用程序仍然表现相同..
现在我的应用程序的工作方式完全不同,它与此 (MainActivity) 不同,如果任何字段为空,它应该 Toast "This is an error toast." 而是说 "Sorry User registered"。 当您填写所有字段并单击创建新帐户时,它也会做类似的事情,它会给出一个显示 "This is an error toast." 而不是 "Sorry User registered" 或 "Signup Succesful !"
的 Toast它显示吐司的原因 This is an error toast
因为在您的 if
条件下您正在检查文本框是否为空。 TextUtils.isEmpty()
处可能存在逻辑问题,如果文本字段为空,returns 为真,请尝试使用 - TextUtils.isEmpty(string) || TextUtils.isEmpty(string1)|| TextUtils.isEmpty(string2)
。
希望对你有帮助。