2015-10-02 14 views
38

Tôi đã bao gồm những phụ thuộc vào dự án của tôi:trang bị thêm nhà máy chuyển đổi không thể truy cập GsonConverterFactory

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

Tôi có một lớp học nơi tôi sẽ truy cập của api của tôi qua trang bị thêm:

public static <S> S createService(Class<S> serviceClass, String baseUrl) { 


     Retrofit builder = new Retrofit.Builder() 
       .baseUrl(baseUrl) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build();  

      RestAdapter adapter = builder.build();*/ 

     return builder.create(serviceClass); 
    } 

Và bây giờ , nó mang lại cho tôi lỗi thời gian biên dịch này:

Error:(24, 17) error: method addConverterFactory in class Builder cannot be applied to given types; required: Factory found: GsonConverterFactory reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion

Làm cách nào để giải quyết vấn đề này? Tôi theo tài liệu. Chuyện gì thế?

Trả lời

111

Hãy thử sử dụng cùng một phiên bản để trang bị thêm và chuyển đổi-gson - 2.0.0-beta2. Bạn đang sử dụng beta2 để trang bị thêm và beta1 cho trình chuyển đổi.

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

Lưu ý quan trọng!

Trang bị thêm thay đổi tên gói của phiên bản kể từ 2.0.0-beta3 phiên bản. Bây giờ bạn nên sử dụng com.squareup.retrofit2. Dưới đây là ví dụ:

compile 'com.squareup.retrofit2:retrofit:2.2.0' 
compile 'com.squareup.retrofit2:converter-gson:2.2.0' 
+1

bạn là một người đàn ông lớn). Nhưng không có tài nguyên nào cho biết tôi phải sử dụng cùng phiên bản beta2. – AEMLoviji

+0

@AEMLoviji Tài nguyên được gọi là cảm giác thông thường, bạn có đồng ý không? Đáng chú ý nhất bởi vì trong các giao diện giai đoạn beta có thể thay đổi mà IS được viết trong các tài liệu trang bị thêm. –

+0

Tôi chỉ gặp phải vấn đề này. và cô ấy đã giải quyết được 2 giờ. cảm ơn!) – ip696

1
error: method addConverterFactory in class Builder cannot be applied to given types; 
    required: Factory 
    found: GsonConverterFactory 
    reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion 

Nếu bạn đang nhận được lỗi này, Lý do là sai dependancy bao gồm.

Add phụ thuộc/thay đổi trong ứng dụng build.gradle tập tin như

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

chắc chắn rằng phiên bản chuyển đổi là 2.0.0-beta2 không 2.0.0-beta1.

2

Với mới nhất Beta 2.0.3 phiên bản bạn cần phải thêm:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3' 
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3' 

Hãy chắc chắn để phù hợp với phiên bản thư viện trang bị thêm với phiên bản gson chuyển đổi.

+0

Sự khác biệt rất khó phát hiện.Vì vậy, đối với tất cả những người mù như tôi - bạn cần phải thêm '2' vào tên gói. – reVerse

2

Đây là mới nhất:

compile 'com.squareup.retrofit2:retrofit:2.0.0' 
compile 'com.squareup.retrofit2:converter-gson:2.0.0' 
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0' 

Nếu bạn sử dụng phiên bản beta:

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

Trong build.gradle (ứng dụng) thay vì:

implementation 'com.google.code.gson:gson:2.8.2' 

viết:

implementation 'com.squareup.retrofit2:converter-gson:2.3.0' 
Các vấn đề liên quan