2016-07-14 21 views
1

Androidスタジオで新しいKotlinプロジェクトを作成しましたが、そのプロジェクトでFuel HTTP libraryを使用しようとしています。私はGitHubののreadme上の例のように関数を使用しようとすると、しかし、私は2つのエラーを取得:"提供された引数で次の関数を呼び出すことはできません" Fuel HTTP

  1. 「以下の機能のいずれも指定された引数で呼び出されないことができます。」 - responseStringを基準に Screenshot

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

    マイ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() 
    } 
    

    どのようにすることができます - コールバック関数の引数のそれぞれに

これは私が使用していたコードです私はこれらのエラーを解決する?

答えて

2

Readmeで多くの署名以下のいる使用あなたが見るresponseString 1のいくつかのオーバーロードがあります:あなたが最初のパラメータはデフォルト値を持って見ることができるように

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

が。 2番目の引数(と最後の引数)は、デフォルト値を持たないラムダであることにも注意してください。デフォルトのパラメータ値(charset)を使用することを選択した場合は、後続のパラメータのデフォルト値を使用する必要があるか、named argumentsを使用する必要があります:

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

ため:Kotlinで

、そこに 関数の最後のパラメータが関数である場合、そのパラメータは、もしC

括弧の外に指定することができるという慣例があります私はあなたが記載されている最後の方法を試してみましたが、それが機能しなかった問題を自分自身を固定する前に

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

:また、括弧なしのReadmeに指定されているメソッドを使用しますが、。 Android Studioをアップデートして問題を修正しました。あなたの返信をありがとう。 –

+0

@ OrangeFlash81 Android Studioを単独でアップデートしても、質問に投稿したコンパイルの問題は修正されません。 – miensol

+0

Androidスタジオが更新され、Kotlinプラグインが更新されました。私は自分のコードを全く変更しませんでした。 –

0

入手しました - 私は非常に古いバージョンのAndroid Studioを使用していました(最新2.1の場合は1.1!)。 Android Studioをアップデートすると、私が言及したすべてのエラーを修正しました。また、いくつかの組み込みSDK関数が見つからないときに遭遇したいくつかの問題を修正しました。

関連する問題