I\'m trying to update this RetroFit + Otto tutorial, so my code updated is:
IWeather.java
RetroFit 2.+ doesn\'t allow to return void
java.lang.IllegalArgumentException: No Retrofit annotation found. (parameter #3)
As the error says, the problem is that the third parameter of the getWeather
method does not have an annotation. The Callback
class is used for the Call#enqueue(Callback)
method.
Simply change
sForecastClient.getWeather(latitude, longitude, callback)
to
sForecastClient.getWeather(latitude, longitude).enqueue(callback)
and remove the third parameter.
Try it and modify your retrofit version number to 2.6.0
. The use of coroutines in Retrofit 2.6.0
can return a Response
object directly. If await()
is not needed, Retrofit will automatically call it. This is not applicable when the version is below 2.6.0
.