Привет, я получаю StackOverflowError
, а POST - небольшие данные на моем сервере для проверки, если он равен сохраненным данным. Я ищу какое-то время, но нет решения для решения моей проблемы.StackOverFlowError: Размер стека 1036 КБ в AsyncTask
Это мой AsyncTask код:
try {
new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void... voids) {
return serverRemoteAccessor.checkLoginData(new User("[email protected]", "123456"));
}
@Override
protected void onPostExecute(Boolean aBoolean) {
if (aBoolean){
Intent next = new Intent(LoginActivity.this, MainActivity.class);
startActivity(next);
} else {
Toast.makeText(LoginActivity.this,
"Ihre Login-Daten sind nicht korrekt,
bitte überprüfen Sie Ihre Eingaben!",
Toast.LENGTH_SHORT).show();
}
}
}.execute();
} catch (Exception e){
Log.e(LOG_TAG, "Error: " + e);
}
ServerRemoteAccessor код:
@Override
public boolean checkLoginData(User userData) {
Log.i(LOG_TAG, "checkLogin");
boolean isCorrect = client.checkLoginData(userData);
Log.i(LOG_TAG, "Login is: " + isCorrect);
return isCorrect;
}
Мой код сервера:
@Override
public boolean checkLoginData(User userData) {
logger.info("checkLogin");
User checkLogin = new User("[email protected]","123456");
if (checkLogin.equals(userData)){
return true;
}else {
return false;
}
}
И мое сообщение об ошибке:
e.app.malchemie.wunderlist E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 Process: de.app.malchemie.wunderlist, PID: 16191 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:304) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.StackOverflowError: stack size 1036KB at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70) at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55) at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:75) at libcore.reflect.Types.getType(Types.java:56) at java.lang.Class.getGenericSuperclass(Class.java:1195) at org.jboss.resteasy.util.GenericType.(GenericType.java:34) at org.jboss.resteasy.client.core.BaseClientResponse$1.(BaseClientResponse.java:89) at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:89) at org.jboss.resteasy.client.ClientResponseFailure.(ClientResponseFailure.java:32) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479) at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442) at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94) at org.jboss.resteasy.client.ClientResponseFailure.(ClientResponseFailure.java:32) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479) at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442) at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94) at org.jboss.resteasy.client.ClientResponseFailure.(ClientResponseFailure.java:32) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479) at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319) at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442) at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94) at org.jboss.resteasy.client.ClientResponseFailure.(ClientResponseFailure.java:32) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488) at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479) at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384) at org.jboss.resteasy.client.
EDIT:
Я решить мою проблему, по-видимому, мой объект Пользователь должен был большой, поэтому пока я отправляю одиночные струны и даже все его хорошо.
Метод вызова цикла здесь 'boolean isCorrect = client.checkLoginData (userData);' вот что вызывает исключение – Dummy
Почему? Потому что, если я хочу читать мои todos, я использую это: 'ArrayList todoList = client.readAllTodos();' Я не получаю никакого stackoverflowerror –
developKinberg
Ваш метод вызывает себя, который в свою очередь вызывает себя снова, это продолжает происходить, вот что такое – Dummy