저는 디자이너입니다. 코딩에 대해서는 잘 모르겠다. 앱을 reskining하는 중이고 apk를 만든 후에 가입 화면에서이 오류가 발생합니다. 모든 세부 사항을 입력하고 java.lang.String 타입의 DOCTYPE가 여기에 값 <! java.lang.string 유형의 DOCTYPE을 jsonobject로 변환 할 수 없습니다.
내signupactivity.java
파일에 대한 전체 코드 된 JSONObject로 변환 할 수없는 가입
값 <!를 클릭합니다.
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을 보낼 것입니다. 일반적으로 요청이 전송되면 서버가 중단 될 때 발생합니다. –