2015-10-23 12 views
19

Tôi đang cố gắng làm theo Retrofit của 2 tutorial, nhưng trên phần này của mã có một GsonConverterFactory hiển thị lỗi Cannot resolve symbol:Retrofit 2 ví dụ hướng dẫn, nhưng lỗi hiển thị GsonConverterFactory "Không thể giải quyết biểu tượng"

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

Trước đây tôi thêm vào trong gradle.build của tôi, tôi không chắc chắn nếu tôi nên thêm GSON kể từ khi họ nói Retrofit 1.9 có nó nhưng không được đề cập về Retrofit 2:

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

Bạn không thể sử dụng GsonConverterFactory trong Retrofit 2, vì nó chỉ áp dụng cho trang bị thêm 1 –

+0

tôi đang làm theo hướng dẫn này: http://wiki.workassis.com/android-retrofit-2-1-http-client/ –

+0

Tham khảo http://stackoverflow.com/a/41015925/3470479 – PrakhaRaM

Trả lời

54

EDIT

trang bị thêm 2 hiện đã ổn định. Sử dụng

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

trong build.gradle phụ thuộc phần của bạn

cũ câu trả lời

với Retrofit 2.0, bạn phải khai báo trong build.gradle bạn nhà máy chuyển đổi bạn muốn sử dụng. Thêm

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

để gradle và đồng bộ nó một lần nữa

+0

hi cảm ơn tôi không thể upvote bạn vì có vẻ như tôi không có đủ đại diện nhưng trả lời của bạn r cũng đã giúp – StackOverflower

11

Từ another article của bạn trên trang web đó

Retrofit 2 không xuất xưởng với Gson theo mặc định. Trước đây, bạn không cần phải lo lắng về bất kỳ trình chuyển đổi tích hợp nào và bạn có thể sử dụng Gson ra khỏi hộp. Thay đổi thư viện này ảnh hưởng đến ứng dụng của bạn và bạn cũng cần phải nhập một trình chuyển đổi làm gói anh chị em. Chúng tôi sẽ chạm vào trình chuyển đổi sau trong bài đăng này và cho bạn biết cách định cấu hình Gson hoặc bất kỳ trình chuyển đổi phản hồi nào khác cho ứng dụng của bạn.

Như vậy, thêm video này vào build.gradle

dependencies { 
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
} 
4

Lý do của bạn để hành vi như vậy trong trường hợp của tôi là typo trong build.gradle phụ thuộc. Sau beta4 phát hành Tôi đã cập nhật từ:

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

để

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

và phụ thuộc đúng là

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


Cũng đáng chú ý, đó beta4 - trang bị thêm sẽ không hoạt động với beta2 - gson!

3

Như Cập nhật thư viện với phiên bản mới

Với

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

Retrofit Bạn phải có bao gồm phụ thuộc của:

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

Phiên bản mới bây giờ đã có

compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
0

Tôi đã sử dụng

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' 

retrofit sử dụng và gson của cùng một mã phiên bản

0
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' 

sử dụng này

Các vấn đề liên quan