web-dev-qa-db-ja.com

レトロフィット2のサンプルチュートリアルがGsonConverterFactoryに「シンボルを解決できません」というエラーが表示される

私はRetrofitの2 tutorial、 をフォローしようとしていますが、コードのこの部分にはGsonConverterFactoryがあり、エラーCannot resolve symbolを表示します:

public class ServiceGenerator {

    public static final String API_BASE_URL = "http://your.api-base.url";

    private static OkHttpClient httpClient = new OkHttpClient();
    private static Retrofit.Builder builder =
            new Retrofit.Builder()
                    .baseUrl(API_BASE_URL)
                    //THIS IS THE LINE WITH ERROR!!!!!!!!!!!!
                    .addConverterFactory(GsonConverterFactory.create());

    public static <S> S createService(Class<S> serviceClass) {
        Retrofit retrofit = builder.client(httpClient).build();
        return retrofit.create(serviceClass);
    }
}

以前にgradle.buildに追加しましたが、GSONを追加する必要があるかどうかはわかりません。Retrofit1.9にはそれが含まれているが、Retrofit 2については何も言及されていないからです。

dependencies {  
    // Retrofit & OkHttp
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
}
29
StackOverflower

[〜#〜] edit [〜#〜]

レトロフィット2は安定しています。つかいます

compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'

あなたのbuild.gradle依存関係セクション

古い回答

retrofit 2.0では、build.gradleで使用する変換ファクトリを宣言する必要があります。追加する

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

あなたのgradleにもう一度同期してください

74
Blackbelt

別の記事 そのサイトから

Retrofit 2はデフォルトではGsonに同梱されていません。以前は、統合されたコンバーターについて心配する必要はなく、Gsonをボックス。このライブラリの変更はアプリに影響するため、コンバーターを兄弟パッケージとしてインポートする必要もあります。この投稿の後半でコンバーターに触れて、Gsonまたはアプリ用の他の応答コンバーターを構成する方法を紹介します。

したがって、これをbuild.gradleに追加します

dependencies {  
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
11
Andrew Brooke

新しいバージョンでレトロフィットライブラリを更新

compile 'com.squareup.retrofit2:retrofit:2.0.2'

次の依存関係を含める必要があります。

compile 'com.squareup.retrofit2:converter-gson:2.0.2'

新しいバージョンが利用可能になりました

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
4
Denys Milano

私の場合、このような動作の理由は、build.gradle依存関係のタイプミスでした。 beta4のリリース後、更新元は次のとおりです。

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'


 compile 'com.squareup.retrofit:converter-gson:2.0.0-beta4'

正しい依存関係は

compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'


また、beta4-改造はbeta2-gsonでは機能しません。

4
Nikita Barishok

利用した

RestService restService=new Retrofit.Builder()
                    .baseUrl(Constants.Base_URl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                    .client(new OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build())
                    .build().create(RestService.class);

    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    // RxJava adapter for retrofit
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    // RxJava libraries
    compile 'io.reactivex:rxjava:1.0.10'
    compile 'io.reactivex:rxandroid:1.1.0'

同じバージョンコードのレトロフィットとgsonを使用する

1
Nilesh Panchal
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'

これを使って

1
Keshav Gera