Сбой приложения при добавлении базы данных комнаты - PullRequest
0 голосов
/ 03 января 2019

Мое приложение аварийно завершает работу, вводя базу данных комнаты с помощью dagger2.Когда я добавляю только контекст, он работает нормально.В этом примере я добавил комнату, чтобы добавить место, но столкнулся с контекстом NPE.

java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com..roomdb / com..roomdb.mvp.view.MainActivity}: java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.Object android.content.Context.getSystemService (java.lang.String)' для ссылки на пустой объект

AppModule:

@Module
class AppModule(private val app: Application) {

@Provides
@Singleton
fun provideContext(): Application = app

@Provides
@Singleton
fun providesAppDatabase(app: Application): AppDatabase =
        Room.databaseBuilder(app , AppDatabase::class.java, "place-db")
                .allowMainThreadQueries().build()

@Provides
fun providesPlaceDao(database: AppDatabase) = database.placeDao()

Приложение добавлено в манифест

class App: Application() {
    var component: AppComponent = DaggerAppComponent.builder().appModule(AppModule(this)).build()
    fun getAppComponent() = component
}

Инъекция в

class MainActivityModel: MainActivityContract.Model {

@Inject
lateinit var db: AppDatabase

init {
    App().getAppComponent().inject(this)
}

override fun addPlace(place: Place) {
    db.placeDao().inserPlace(place)
}
}

Logcat

Причина:java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.Object android.content.Context.getSystemService (java.lang.String)' для пустой ссылки на объект

Logcat https://i.imgur.com/zjcOzmn.png

...