«Ни одна из следующих функций не может быть вызвана с аргументами, предоставленными« с топливным HTTP-протоколом »

Я создал новый проект Kotlin в Android Studio, и теперь я пытаюсь использовать библиотеку Fuel HTTP в этом проекте. Однако, когда я пытаюсь использовать такие функции, как в примерах в readme GitHub, я получаю две ошибки:

  1. «Ни один из следующих функций не может быть вызван с предоставленными аргументами». – по ссылке на responseString Скриншот

  2. «Нельзя вывести тип для этого параметра. Пожалуйста, укажите его явно». – по каждому аргументу функции обратного вызова

Это код, который я использую:

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 }) } } 

My 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() } 

Как я могу устранить эти ошибки?

Есть несколько перегрузок responseString вы видели, использовали много в Readme, имеет следующую подпись:

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

Как вы видите, первый параметр имеет значение по умолчанию. Также обратите внимание, что второй (и при этом последний) аргумент является лямбдой, которая не имеет значения по умолчанию. Если вы решите использовать значение параметра по умолчанию ( charset ), вам также необходимо использовать значения по умолчанию для последующих параметров или вам нужно будет использовать именованные аргументы :

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

Потому как:

В Kotlin существует соглашение о том, что если последний параметр функции является функцией, этот параметр может быть указан за пределами круглых скобок

Вы также можете использовать метод, указанный в Readme, но без круглых скобок :

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

Получил это – я использовал чрезвычайно старую версию Android Studio (1.1, когда последняя – 2.1!). Обновление Android Studio исправило все ошибки, о которых я упомянул, а также некоторые другие, с которыми я столкнулся, когда делали покупки, когда некоторые встроенные функции SDK отсутствовали.

Intereting Posts
Как назвать конкретную лямбду в макет класса? сигнал 7 (SIGBUS), код 2 (BUS_ADRERR) динамически созданный текст, как сделать findViewByTag в kotlin, он показывает неразрешенные ссылки Не удалось получить данные из базы данных sqlite Какую ниже технологию я должен узнать теперь, когда разработчик Android будет использовать лучшие возможности в ближайшие дни? Dagger 2 обменивается экземпляром объекта между ведущими Сессия cookie не сохраняется с JSoup Возврат к фрагменту с обратной связью Почему мой слайдер-редактор не работает в сетке Vaadin 8? Общая функция расширения Котлина с базовыми типами без отражения API Pockemon Go повернулся к пустой карте Какой способ лучше, если я надеюсь использовать синтаксис, как статическая функция в Котлин? Kotlin в xml onClick не работает Kotlin: как передать функцию как параметр другому? Не удалось обновить значение параметра параметра метода Котлин