java.lang.OutOfMemoryError в экземпляре класса с использованием Kotlin - PullRequest
0 голосов
/ 24 октября 2018

Я делаю проект в Котлине с использованием шаблона проектирования MVP впервые.Почему у меня java.lang.OutOfMemoryError.

Это моя ошибка отладчика: https://pastebin.com/U1nwjaf6

Это мой класс DbManager: https://pastebin.com/KRpa2eRF

И этоМой класс LoginPresenter: https://pastebin.com/Vryf0kBH

Я новичок в создании приложений с использованием Kotlin.Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Добро пожаловать в StackOverflow!

Несколько советов: Вы должны опубликовать все, что связано с вашим кодом.Людям легче помочь вам и дать лучшие ответы.Вы также должны вставить код в вопрос, а не давать ссылки на pastebin.Используйте сервисы типа pastebin только тогда, когда ваш код слишком велик.В данном случае это не так (но вы правильно сделали с сообщением об ошибке, оно большое).

Теперь о самой проблеме.

Кажется, вы создаете экземпляр класса DbManagerсогласно сообщениям об ошибках.Этот класс создает экземпляр вашего другого класса, LoginPresenter здесь:

class DbManager
{
   ...     
   val loginPresenter: LoginPresenter = LoginPresenter()
   ...
}

LoginPresenter будет создавать экземпляр класса DbManager:

class LoginPresenter
{
    ...
    val dbManager: DbManager = DbManager()
    ...
}

DbManager создает LoginPresenter, который создаетDbManager, который создает LoginPresenter, который создает ...

См. Образец здесь?Он создает бесконечный цикл с рекурсией, который будет создавать классы до тех пор, пока у вас не закончится память.Следовательно, ошибка.

Трудно сказать вам, что вы должны делать, когда у меня есть только эта часть кода.Но, Я думаю , что вам следует создать экземпляр класса DbManager только один раз, глобально и использовать этот экземпляр каждый раз, когда вы захотите с ним взаимодействовать.

0 голосов
/ 24 октября 2018

Вы получаете это из-за StackOverflow:)

Экземпляры DBManager и LoginPresenter создаются в цикле и, вызывая это, вы должны переместить создание экземпляра в некоторый метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...