我无法修复此错误。
“错误:任务'执行失败':app:transformClassesWithInstantRunForDebug'。
java.lang.IllegalStateException:预期为BEGIN_ARRAY,但在第1行第1行为STRING <“
我不明白为什么我得到它。昨晚我的代码工作得非常好,除了改变文本字体外,我没有做过任何重大改动。当我关闭android studio并重新打开我的项目时,我收到了这个错误。
我尝试关闭即时运行,但这只是给了我一个不同的错误。我感谢任何帮助!
这是我的代码。
package com.example.bryan.cashew;
import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class LoginActivity extends AppCompatActivity implements
View.OnClickListener {
private Button buttonSignIn;
private EditText editTextEmail;
private EditText editTextPassword;
private TextView textViewSignup;
private FirebaseAuth firebaseAuth;
private ProgressDialog progressDialog;
//new
public static final String TAG = "LOG_TAG";
//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
firebaseAuth = FirebaseAuth.getInstance();
if (firebaseAuth.getCurrentUser() != null) {
// profile activity here
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}
editTextEmail = (EditText) findViewById(R.id.loginTextEmail);
editTextPassword = (EditText) findViewById(R.id.loginTextPassword);
buttonSignIn = (Button) findViewById(R.id.buttonSignIn);
textViewSignup = (TextView) findViewById(R.id.textViewSignUp);
buttonSignIn.setOnClickListener(this);
textViewSignup.setOnClickListener(this);
}
private void userLogin() {
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
Toast.makeText(this, "Please enter email.", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "Please enter password.", Toast.LENGTH_SHORT).show();
return;
}
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Logging in Please Wait");
progressDialog.show();
firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener < AuthResult > () {
@Override
public void onComplete(@NonNull Task < AuthResult > task) {
progressDialog.dismiss();
//NEW STUFF CAUTION
Log.d(TAG, "signInWithEmailComplete:" + task.isSuccessful());
if (task.isSuccessful()) {
// start the profile activity
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithEmail:failed", task.getException());
Log.w(TAG, "email: " + email + " password: " + password);
Toast.makeText(LoginActivity.this, "Authentication failed", Toast.LENGTH_LONG).show();
}
//END OF NEW STUFF
/*
GOOD STUFF DO NOT DELETE
if(task.isSuccessful()){
// start the profile activity
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}else {
progressDialog.setMessage("Incorrect email or password");
progressDialog.show();
}
*/
}
});
}
@Override
public void onClick(View view) {
if (view == buttonSignIn) {
userLogin();
}
if (view == textViewSignup) {
finish();
startActivity(new Intent(this, MainActivity.class));
}
}
}
package com.example.bryan.cashew;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class LoginOrRegisterActivity extends AppCompatActivity {
private Button login;
private Button register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_or_register);
login = (Button) findViewById(R.id.buttonLogIn);
register = (Button) findViewById(R.id.buttonReg);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openLogin();
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openReg();
}
});
}
public void openReg() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
public void openLogin() {
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
}
package com.example.bryan.cashew;
import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button buttonRegister;
private EditText editTextEmail;
private EditText editTextPassword;
private EditText retypedPassword;
private TextView textViewSignin;
private ProgressDialog progressDialog;
public static final String TAG = "LOG_TAG";
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth = FirebaseAuth.getInstance();
if (firebaseAuth.getCurrentUser() != null) {
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}
progressDialog = new ProgressDialog(this);
buttonRegister = (Button) findViewById(R.id.buttonRegister);
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
retypedPassword = (EditText) findViewById(R.id.editTextRetypePassword);
textViewSignin = (TextView) findViewById(R.id.textViewSignin);
buttonRegister.setOnClickListener(this);
textViewSignin.setOnClickListener(this);
}
private void registerUser() {
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
final String rePassword = retypedPassword.getText().toString().trim();
if (password.length() < 6) {
Toast.makeText(this, "Please enter a password larger then 6 characters", Toast.LENGTH_SHORT).show();
return;
}
if (!password.equals(rePassword)) { // PASSWORDS ARE NOT MATCHING
Toast.makeText(this, "Please enter matching passwords", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(email)) {
//email is empty
Toast.makeText(this, "Please enter email", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
//password is empty
Toast.makeText(this, "Please enter password", Toast.LENGTH_SHORT).show();
return;
}
progressDialog.setMessage("Registering User...");
progressDialog.show();
firebaseAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener < AuthResult > () {
@Override
public void onComplete(@NonNull Task < AuthResult > task) {
if (task.isSuccessful()) {
//user is successfully registered and logged in
// we will start the profile activity here
Toast.makeText(MainActivity.this, "Register Successfully", Toast.LENGTH_SHORT).show();
Log.w(TAG, "email: " + email + " password: " + password);
editTextEmail.setText("");
editTextPassword.setText("");
progressDialog.dismiss();
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}
}
});
}
@Override
public void onClick(View view) {
if (view == buttonRegister) {
registerUser();
}
if (view == textViewSignin) {
// will open login activity
startActivity(new Intent(this, LoginActivity.class));
}
}
}
package com.example.bryan.cashew;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class ProfileActivity extends AppCompatActivity implements
View.OnClickListener {
private FirebaseAuth firebaseAuth;
private TextView textViewUserEmail;
private Button buttonLogout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
firebaseAuth = FirebaseAuth.getInstance();
if (firebaseAuth.getCurrentUser() == null) {
finish();
startActivity(new Intent(this, LoginActivity.class));
}
FirebaseUser user = firebaseAuth.getCurrentUser();
textViewUserEmail = (TextView) findViewById(R.id.textViewUserEmail);
textViewUserEmail.setText("Welcome " + user.getEmail());
buttonLogout = (Button) findViewById(R.id.buttonLogout);
buttonLogout.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == buttonLogout) {
firebaseAuth.signOut();
finish();
startActivity(new Intent(this, LoginActivity.class));
}
}
}
package com.example.bryan.cashew;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
public class Splash extends AppCompatActivity {
private TextView tv;
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
iv = (ImageView) findViewById(R.id.iv);
Animation myanim = AnimationUtils.loadAnimation(this, R.anim.mytransition);
iv.startAnimation(myanim);
final Intent i = new Intent(this, LoginOrRegisterActivity.class);
Thread timer = new Thread() {
public void run() {
try {
sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
startActivity(i);
finish();
}
}
};
timer.start();
}
}
答案 0 :(得分:0)
就我而言,我正在创建一个for循环,该循环遍历一个ArrayList对象,该数组使用正则表达式对每个String对象进行格式化。通过以不同的方式重写正则表达式,我可以大大减少它们的数量。减少正则表达式表达式调用的次数后,我在Android Studio上运行了一个干净的项目。单击Android Studio顶部菜单上的“ build”,然后单击“ clean project”。