"Ninguna de las siguientes funciones se puede invocar con los arguments suministrados" con Fuel HTTP

Creé un nuevo proyecto de Kotlin en Android Studio, y ahora estoy tratando de usar la biblioteca Fuel HTTP en ese proyecto. Sin embargo, cuando bash usar las funciones como en los ejemplos en el file Léame de GitHub, obtengo dos errores:

  1. "Ninguna de las siguientes funciones se puede invocar con los arguments suministrados". – en la reference a responseString Captura de pantalla

  2. "No se puede inferir un tipo para este parámetro. Especifíquelo explícitamente". – en cada uno de los arguments a la function de callback

Este es el código que estoy usando:

package me.myname.morefueltesting import android.support.v7.app.ActionBarActivity import android.os.Bundle import android.view.Menu import android.view.MenuItem import com.github.kittinunf.fuel.Fuel public class MainActivity : ActionBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) /* First error /--Second errors--\ | | | | \/\/\/\/\/\/\/ \/\/\/\ /\/\/\/\ /\/\/\ */ Fuel.get("http://httpbin.org/get").responseString({request, response, result -> // Some callback code here }) } } 

Mi build.gradle :

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 22 buildToolsVersion '22.0.1' defaultConfig { applicationId "me.myname.morefueltesting" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile 'com.github.kittinunf.fuel:fuel-rxjava:1.3.1' compile 'com.github.kittinunf.fuel:fuel-android:1.3.1' } buildscript { ext.kotlin_version = '1.0.3' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() } 

¿Cómo puedo resolver estos errores?

Hay varias sobrecargas de responseString la que ves utilizada mucho en el Léame tiene la siguiente firma:

 fun responseString( charset: Charset = Charsets.UTF_8, handler: (Request, Response, Result<String, FuelError>) -> Unit): Request 

Como puede ver, el primer parámetro tiene un valor pnetworkingeterminado. Observe también que el segundo argumento (y el mismo último) es un lambda que no tiene valor pnetworkingeterminado. Si elige usar un valor de parámetro pnetworkingeterminado ( charset ), también necesita usar valores pnetworkingeterminados para los parameters posteriores o tendrá que usar arguments con nombre :

 Fuel.get("http://httpbin.org/get").responseString(handler = {request, response, result -> // Some callback code her }) 

Porque:

En Kotlin, existe la convención de que si el último parámetro de una function es una function, ese parámetro se puede especificar fuera de los paréntesis

También puede usar el método como se especifica en el file Léame pero sin paréntesis :

 Fuel.get("http://httpbin.org/get").responseString {request, response, result -> // Some callback code her } 

Entendido, estaba usando una versión extremadamente antigua de Android Studio (1.1 cuando la última es 2.1). La actualización de Android Studio corrigió todos los errores que mencioné, así como algunos otros que encontré mientras jugaba donde faltaban algunas funciones integradas de SDK.

  • método de inicio de session no está llamando utilizando databinding en Android
  • Kotlin: ¿Qué significa "return @"?
  • Constructor pnetworkingeterminado para IntentService (kotlin)
  • RegisterResGeneratingTask está en desuso, use registerGeneratedFolders (FileCollection)
  • Atajo de IntelliJ para la configuration de ejecución
  • ¿Cómo implementar un constructor de validation en Kotlin?
  • NoSuchMethodError usando @Parcelize Annotation en Kotlin
  • Android: envío de datos a MainActivity
  • ¿En qué situación val / var es necesaria en el parámetro constructor de Kotlin?
  • Daga con Mvp en Kotlin - Android
  • Codificación de request del cartero