Я дизайнер и понятия не имею о кодировании, я пересказываю приложение и после сборки apk. У меня есть эта ошибка на экране регистрации, когда я ввести все данные и нажмите на SignupЗначение <! DOCTYPE типа java.lang.string не может быть преобразовано в jsonobject
< значения! DOCTYPE типа java.lang.String не может быть преобразован в JSONObject
Вот полный код на моем signupactivity.java
файл.
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import com.amo.FillPocket.app.App;
import com.amo.FillPocket.common.ActivityBase;
import com.amo.FillPocket.util.CustomRequest;
import com.amo.FillPocket.util.Helper;
public class SignupActivity extends ActivityBase {
EditText signupUsername, signupFullname, signupPassword, signupEmail;
Button signupJoinBtn;
private String username, fullname, password, email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
signupUsername = (EditText) findViewById(R.id.signupUsername);
signupFullname = (EditText) findViewById(R.id.signupFullname);
signupPassword = (EditText) findViewById(R.id.signupPassword);
signupEmail = (EditText) findViewById(R.id.signupEmail);
signupJoinBtn = (Button) findViewById(R.id.signupJoinBtn);
signupJoinBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
username = signupUsername.getText().toString();
fullname = signupFullname.getText().toString();
password = signupPassword.getText().toString();
email = signupEmail.getText().toString();
if (verifyRegForm()) {
if (App.getInstance().isConnected()) {
showpDialog();
CustomRequest jsonReq = new CustomRequest(Request.Method.POST, METHOD_ACCOUNT_SIGNUP, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Profile", "Malformed JSON: \"" + response.toString() + "\"");
if (App.getInstance().authorize(response)) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
ActivityCompat.finishAffinity(SignupActivity.this);
} else {
switch (App.getInstance().getErrorCode()) {
case 300 : {
signupUsername.setError(getString(R.string.error_login_taken));
break;
}
case 301 : {
signupEmail.setError(getString(R.string.error_email_taken));
break;
}
default: {
Log.e("Profile", "Could not parse malformed JSON: \"" + response.toString() + "\"");
break;
}
}
}
hidepDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
Log.e("Profile", "Malformed JSON: \"" + error.getMessage() + "\"");
hidepDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("fullname", fullname);
params.put("password", password);
params.put("email", email);
params.put("clientId", CLIENT_ID);
return params;
}
};
App.getInstance().addToRequestQueue(jsonReq);
} else {
Toast.makeText(getApplicationContext(), R.string.msg_network_error, Toast.LENGTH_SHORT).show();
}
}
}
});
}
public Boolean verifyRegForm() {
signupUsername.setError(null);
signupFullname.setError(null);
signupPassword.setError(null);
signupEmail.setError(null);
Helper helper = new Helper();
if (username.length() == 0) {
signupUsername.setError(getString(R.string.error_field_empty));
return false;
}
if (username.length() < 5) {
signupUsername.setError(getString(R.string.error_small_username));
return false;
}
if (!helper.isValidLogin(username)) {
signupUsername.setError(getString(R.string.error_wrong_format));
return false;
}
if (fullname.length() == 0) {
signupFullname.setError(getString(R.string.error_field_empty));
return false;
}
if (password.length() == 0) {
signupPassword.setError(getString(R.string.error_field_empty));
return false;
}
if (password.length() < 6) {
signupPassword.setError(getString(R.string.error_small_password));
return false;
}
if (!helper.isValidPassword(password)) {
signupPassword.setError(getString(R.string.error_wrong_format));
return false;
}
if (email.length() == 0) {
signupEmail.setError(getString(R.string.error_field_empty));
return false;
}
if (!helper.isValidEmail(email)) {
signupEmail.setError(getString(R.string.error_wrong_format));
return false;
}
return true;
}
@Override
public void onBackPressed(){
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case android.R.id.home: {
finish();
return true;
}
default: {
return super.onOptionsItemSelected(item);
}
}
}
}
Вы получаете XML и пытаетесь его разобрать, как если бы были JSON. Это не будет работать. Пожалуйста, посетите [help] и прочитайте [ask], чтобы узнать, как эффективно использовать этот сайт. Требуется немного больше усилий с вашей стороны, и мы не сможем отлаживать большой блок кода, не указывая, где возникает проблема. –
Вкратце ответ с сервера неверен, сервер, вероятно, отправляет вам HTML-код, как правило, это происходит при сбое сервера при отправке запроса. –