futurice / freesound-android

Unofficial Android client for the Freesound Project
Apache License 2.0
85 stars 16 forks source link

NPE exception when press on search icon #69

Closed ghost closed 7 years ago

ghost commented 7 years ago

Caused by: java.lang.NullPointerException: Cannot return null from a non-@Nullable @Provides method at dagger.internal.Preconditions.checkNotNull(Preconditions.java:47) at com.futurice.freesound.app.module.ConfigModule_ProvideApiModuleApiTokenConfigFactory.get(ConfigModule_ProvideApiModuleApiTokenConfigFactory.java:16) at com.futurice.freesound.app.module.ConfigModule_ProvideApiModuleApiTokenConfigFactory.get(ConfigModule_ProvideApiModuleApiTokenConfigFactory.java:7) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.app.module.ApiModule_ProvideApiInterceptorFactory.get(ApiModule_ProvideApiInterceptorFactory.java:25) at com.futurice.freesound.app.module.ApiModule_ProvideApiInterceptorFactory.get(ApiModule_ProvideApiInterceptorFactory.java:9) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.app.module.ApiModule_ProvideApiOkHttpClientFactory.get(ApiModule_ProvideApiOkHttpClientFactory.java:41) at com.futurice.freesound.app.module.ApiModule_ProvideApiOkHttpClientFactory.get(ApiModule_ProvideApiOkHttpClientFactory.java:12) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.app.module.ApiModule_ProvideFreeSoundApiFactory.get(ApiModule_ProvideFreeSoundApiFactory.java:37) at com.futurice.freesound.app.module.ApiModule_ProvideFreeSoundApiFactory.get(ApiModule_ProvideFreeSoundApiFactory.java:11) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.app.DaggerFreesoundApplicationComponent.getApi(DaggerFreesoundApplicationComponent.java:177) at com.futurice.freesound.feature.search.DaggerSearchActivityComponent$1.get(DaggerSearchActivityComponent.java:75) at com.futurice.freesound.feature.search.DaggerSearchActivityComponent$1.get(DaggerSearchActivityComponent.java:68) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideFreeSoundsSearchServiceFactory.get(SearchActivityModule_ProvideFreeSoundsSearchServiceFactory.java:27) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideFreeSoundsSearchServiceFactory.get(SearchActivityModule_ProvideFreeSoundsSearchServiceFactory.java:10) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideSearchDataModelFactory.get(SearchActivityModule_ProvideSearchDataModelFactory.java:26) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideSearchDataModelFactory.get(SearchActivityModule_ProvideSearchDataModelFactory.java:9) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideSearchViewModelFactory.get(SearchActivityModule_ProvideSearchViewModelFactory.java:38) at com.futurice.freesound.feature.search.SearchActivityModule_ProvideSearchViewModelFactory.get(SearchActivityModule_ProvideSearchViewModelFactory.java:10) at dagger.internal.DoubleCheck.get(DoubleCheck.java:46) at com.futurice.freesound.feature.search.SearchActivity_MembersInjector.injectMembers(SearchActivity_MembersInjector.java:29

P.S. I updated gradle plugin only!

tomaszpolanski commented 7 years ago

Did you add the key for the freesound API?

ghost commented 7 years ago

I found this: // Freesound API Properties apiProperties = loadFileProperties("$projectDir/freesound-api.properties") freesound_api_key = apiProperties.getProperty("freesound.api.key", "null") freesound_api_url = "\"https://www.freesound.org/\""

But i cannot find "freesound-api.properties" file )) It means that i need to create him and put key inside?

P.S. Ok its clear now, i need to create him ))

tomaszpolanski commented 7 years ago

@peter-tackage we should find a better way of storing those keys. Everyone will have an issue with it

ghost commented 7 years ago

Maybe a temporary solution to replace default "null" by a random String (to avoid NPE)

peter-tackage commented 7 years ago

@tomaszpolanski, true. My initial thoughts are that It should fail hard on compilation without the file (and give an obvious message) - then we need to discover how to securely supply the file (or property/whatever) to TravisCI.